我的程序中有一个List <>,填充了我的自定义类.我希望能够通过简单地指定一个整数从列表中提取一个对象,然后返回所有具有整数属性设置为该整数的对象.我想这样做:
int exampleint = 5;
List<MyClass> extract = new List<MyClass>();
for(int i = 0; i < list.Length; i++) {
if(list[i].Number == exampleint)
extract.Add(list[i]);
}
return extract;
Run Code Online (Sandbox Code Playgroud)
有没有更好或更快的方法呢?就是想.
更新:克里斯,你的答案有点偏.这个:
List<MyClass> extract = list.FindAll(delegate(int obj) { return obj.Number == exampleint; });
Run Code Online (Sandbox Code Playgroud)
事实应该是这样的:
List<MyClass> extract = list.FindAll(new Predicate<MyClass>(delegate(MyClass obj) { return obj.Number == exampleint; }));
Run Code Online (Sandbox Code Playgroud)
你的第一个例子给了我错误.但是,感谢你指出我正确的方向,它现在似乎工作.
List<MyClass> extract = list.FindAll(obj => obj.Number == exampleint);
Run Code Online (Sandbox Code Playgroud)
或(如果您使用的是.NET 2.0且无法使用表达式)
List<MyClass> extract = list.FindAll(delegate(MyClass obj) { return obj.Number == exampleint; });
Run Code Online (Sandbox Code Playgroud)