我正在处理 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”是一个列表。我尝试“强制转换”IList 以便 myValues 接受它,但它似乎不起作用。
当然,我可以在“foreach”循环中循环 mySortedList.Values,但我真的不想这样做。
有人有什么建议吗?
EDIT-1:好的,看起来没有本地方法可以轻松做到这一点。我以为我只是错过了一些东西,但显然我没有。所以我想我只是要对 IList 做一个“foreach”。
感谢大家的反馈!我给每个人投了 1 票,因为我认为所有的反馈都很好。再次感谢!:-)
EDIT-2:看起来 CMS 有我正在寻找的答案。唯一需要注意的是(正如 Qwertie 指出的那样),这可能会导致性能下降,因为它涉及将所有值复制到另一个列表,然后从头到尾搜索该列表。所以对于短名单,这个答案是有效的。更长的列表?好吧,这由你决定......