我正在查看通用列表以根据特定参数查找项目。
一般来说,最好和最快的实现是什么?
1. 循环遍历列表中的每个项目并将每个匹配项保存到一个新列表并返回该列表
foreach(string s in list)
{
if(s == "match")
{
newList.Add(s);
}
}
return newList;
或者
2. 使用 FindAll 方法并将其传递给委托(delegate)。
newList = list.FindAll(delegate(string s){return s == "match";});
他们不是都在 ~ O(N) 内运行吗?这里的最佳做法是什么?
问候, 乔纳森
最佳答案
您绝对应该使用 FindAll
方法,或等效的 LINQ 方法。此外,如果可以(需要 C# 3.0),请考虑使用更简洁的 lambda 而不是委托(delegate):
var list = new List<string>();
var newList = list.FindAll(s => s.Equals("match"));
关于c# - 通用列表 FindAll() 与 foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/674632/