Я работаю над проблемой в C # 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 - это List. Я попытался «привести» IList, чтобы он был принят myValues, но, похоже, он не работает.
Конечно, я могу перебирать mySortedList.Values в цикле "foreach", но я не хочу этого делать.
У кого-нибудь есть предложения?
РЕДАКТИРОВАТЬ-1: Хорошо, похоже, нет простого способа сделать это легко. Я предполагал, что просто что-то упустил, но, по-видимому, я не так. Так что, думаю, я просто собираюсь сделать «foreach» над IList.
Спасибо всем за отзывы! Я проголосовал за всех 1, потому что я думал, что все отзывы были хорошими. Еще раз спасибо! : -)
РЕДАКТИРОВАТЬ-2: Похоже, CMS имеет ответ, который я искал. Единственное предостережение с этим (как указал Qwertie) заключается в том, что существует потенциальное снижение производительности, поскольку оно включает в себя копирование всех значений в другой список, а затем поиск в этом списке от начала до конца. Так что для коротких списков этот ответ эффективен. Более длинные списки? ну, это решать тебе ...