我不知道如何基于传入的值,在List中执行“查找”操作。若您查看以下代码,我想查找CustomClass在List中的Path参数等于X的对象,其中X将在运行时定义。
有没有办法在List中实现这样的查找?还是说必须手动编写迭代器并进行查找?如果是这样,也许应该考虑使用键控集合来代替。
有没有办法在List中实现这样的查找?还是说必须手动编写迭代器并进行查找?如果是这样,也许应该考虑使用键控集合来代替。
private List<CustomClass> files;
public void someMethod()
{
Uri u= new Uri(www.test.com);
CustomClass cc = this.files.find( matchesUri(u) ); // WON'T LET ME DO THIS
}
private static bool matchesUri(List<CustomClass> cc, Uri _u)
{
return cc.Path == _u; }
public class CustomClass
{
private Uri path;
public Uri Path
{
get { return this.path; }
set { this.path = value; }
}
}
补充一下,我必须承认我并没有完全理解文档中关于谓词部分的内容,文档链接如下:http://msdn.microsoft.com/en-us/library/x0b5b5bc.aspx
delegate bool Predicate<T>(T obj)
)可以看出,谓词是一个接受单个类型为 T 的参数并返回布尔值的函数(方法)。 - vgru