我无法让代码片段 #2 工作,所以我不得不将我的逻辑更改为代码片段 #1。有人可以解释为什么代码片段 #2 不起作用吗?我认为它会,因为 ItemCollection 实现了 IList 接口(interface)......我知道存储在每个列表框中的类型(listbox1 是字符串,listbox2 是 PictureInfo 类型)。
(注:PictureInfo是我自己定义的类型)
1:
private void MoveImagesFromHCollectionToCollection(ItemCollection collectionMoveFrom, ItemCollection collectionMoveTo)
{
//Loop through All strings in the lstAll list box. Then use each picture path to convert
//each picture into their own class
foreach (string file in collectionMoveFrom)
{
PictureInfo mp = ReturnPictureInfoTypeBasedOffFileExtension(img, file);
collectionMoveTo.Add(mp);
collectionMoveFrom.Remove(file);
//...
}
}
//Method call...
MoveImagesFromHCollectionToCollection(listbox1.Items, listbox2.Items);
2:
private void MoveImagesFromHCollectionToCollection(IList<string> collectionMoveFrom, IList<PictureInfo> collectionMoveTo)
{
//Loop through All strings in the lstAll list box. Then use each picture path to convert
//each picture into their own class
foreach (string file in collectionMoveFrom)
{
PictureInfo mp = ReturnPictureInfoTypeBasedOffFileExtension(img, file);
collectionMoveTo.Add(mp);
collectionMoveFrom.Remove(file);
//...
}
}
//Method call...parameter 1 Listbox contains strings, parameter 2 Listbox contains objects of type PictureInfo
MoveImagesFromHCollectionToCollection(listbox1.Items, listbox2.Items);
最佳答案
ItemCollection
不执行 IList<string>
.
IList
(非通用)是一个不同的接口(interface)。
关于C# .NET - ItemCollection 在作为 IList<type> 传递时不编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4481580/