gpt4 book ai didi

C# List.Find 方法 - 如何将值传递给谓词?

转载 作者:太空狗 更新时间:2023-10-29 20:02:16 26 4
gpt4 key购买 nike

我无法弄清楚如何根据我将在运行时传入的值对我拥有的列表进行“查找”。如果您看到我下面的代码,我希望能够在其路径参数等于 X 的列表中找到 CustomClass,其中 X 将在运行时定义。

关于如何在列表中查找的任何想法?或者如果不编写迭代器并手动进行查找,这是不可能的吗?在这种情况下,也许我应该考虑改用一个键控集合?

   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 的 doco 中的谓词内容。

最佳答案

使用 lambda:

 Uri u = new Uri("www.test.com");
CustomClass cc = this.files.Find(cc => cc.Path == u);

或者如果您仍然想要一个命名方法:

static bool matchesUri(CustomClass cc, Uri _u)
{
return cc.Path == _u;
}

Uri u = new Uri("www.test.com");
CustomClass cc = this.files.Find(cc => matchesUri(cc, u));

关于C# List.Find 方法 - 如何将值传递给谓词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1529846/

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