gpt4 book ai didi

c# - 将一些 LINQ 查询传递给函数的参数?

转载 作者:太空狗 更新时间:2023-10-29 20:03:40 25 4
gpt4 key购买 nike

我在 C# 中有以下代码示例,演示了我想如何将一些 LINQ 查询解析为函数的参数。

public List<object> AllElements;

public object GetAll<T>(SomeLINQQuery) {

//get some elements from AllElements where the argument is added to the query, as shown below.

}

现在,为了赋予它一些意义,我想完成的是:

public void test() {
GetAll<object>(where object.ToString() == "lala");
}

这有点难以解释。我希望这个例子能很好地发挥作用。

最佳答案

当然。你会这样做:

public List<T> GetAll<T>(List<T> list, Func<T, bool> where)
{
return list.Where(where).ToList();
}

你可以这样调用它:

var result = GetAll(AllElements, o => o.ToString() == "lala");

您甚至可以将其创建为扩展方法:

public static List<T> GetAll<T>(this List<T> list, Func<T, bool> where)
{
return list.Where(where).ToList();
}

并这样调用它:

var result = AllElements.GetAll(o => o.ToString() == "lala");

但实际上,在您的简单示例中,它没有任何意义,因为它与直接使用 Where 完全相同:

var result = AllElements.Where(o => o.ToString() == "lala").ToList();

但是,如果您的 GetAll 方法执行更多操作,则将谓词传递给该方法可能有意义。

关于c# - 将一些 LINQ 查询传递给函数的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5578612/

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