Я не смог заставить работать фрагмент кода № 2, поэтому мне пришлось изменить свою логику на фрагмент кода № 1.Может кто-нибудь объяснить, почему фрагмент кода № 2 не будет работать?Я думал, что так и будет, поскольку ItemCollection реализует интерфейс IList ... Я знаю типы, которые хранятся в каждом списке (список1 является строкой, а список2 является типом 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);