gpt4 book ai didi

c# - 如何对 IList 执行 FindAll()? (例如 SortedList.Values)

转载 作者:太空宇宙 更新时间:2023-11-03 18:50:38 25 4
gpt4 key购买 nike

我正在处理 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 指出的那样),这可能会降低性能,因为它涉及将所有值复制到另一个列表,然后从头到尾搜索该列表。所以对于短名单,这个答案是有效的。更长的列表?好吧,这由你决定......

最佳答案

IList Interface工具 IEnumerable , 你实际上可以得到一个 List<T>使用 List<T> (IEnumerable) Constructor 的值:

List<string> myValues = new List<string>(mySortedList.Values);

关于c# - 如何对 IList<T> 执行 FindAll()? (例如 SortedList.Values),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/617374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com