Я работаю над проблемой в С# 2.0/.NET 2.0, где у меня есть Sortedlist и я хочу найти все "значения" (а не "ключи") этого SortedList для определенной подстроки и подсчитать, сколько вхождений .
Вот что я пытаюсь сделать:
{
Sortedlist<string,string> mySortedList;
// some code that instantiates mySortedList and populates it with data
List<string> myValues = mySortedList.Values; // <== does not work
int namesFound = myValues.FindAll(ByName(someName)).Count;
}
Естественно, это не работает, поскольку mySortedList.Values возвращает IList, а myValues — это список. Я попытался «привести» IList, чтобы он был принят myValues, но, похоже, это не сработало.
Конечно, я могу перебрать mySortedList.Values в цикле foreach, но на самом деле я не хочу этого делать.
У кого-нибудь есть предложения?
РЕДАКТИРОВАТЬ-1: Хорошо, похоже, что нет собственного способа сделать это легко. Я предполагал, что просто что-то упускаю, но, видимо, это не так. Так что я думаю, я просто собираюсь сделать "foreach" поверх IList.
Спасибо всем за отзывы! Я проголосовал за всех 1, потому что я думал, что все отзывы были хорошими. Спасибо еще раз! :-)
РЕДАКТИРОВАТЬ-2: Похоже, у CMS есть ответ, который я искал. Единственное предостережение (как указал Qwertie) заключается в том, что существует потенциальное снижение производительности, поскольку оно включает копирование всех значений в другой список и последующий поиск в этом списке от начала до конца. Так что для коротких списков этот ответ эффективен. Более длинные списки? ну это вам решать...