在C#2.0中不使用foreach循环过滤列表<>对象

Kth*_*var 9 c# c#-2.0

我们如何在C#中的List <>中过滤对象?

Raz*_*zie 18

假设我们有一个List<string>,你只想要字符串长度大于5的项目.

下面的代码将返回a List<string>结果:

List<string> myList = new List<string>();
myList.Add("hello");
myList.Add("world!");
myList.Add("one");
myList.Add("large!!");
List<string> resultList = myList.FindAll(delegate(string s) { return s.Length > 5; });
Run Code Online (Sandbox Code Playgroud)

resultList将包含'世界'!和'大!!'.此示例使用匿名方法.它也可以写成:

List<string> myList = new List<string>();
// ..
List<string> resultList = myList.FindAll(OnlyLargerThanFive);

//..

private static bool OnlyLargerThanFive(string s)
{
  return s.Length > 5;
}
Run Code Online (Sandbox Code Playgroud)

上面的代表,OnlyLargerThanFive,也称为谓词.