对列表中的所有元素求值表达式

发布于 2024-12-22 06:21:44 字数 263 浏览 4 评论 0原文

public List<String> listStr = new listStr();

public List<String> FindString(Expression<Func<String, bool>> predicate)
{
// return a list that satisfies the predicate
}

我试图举一个例子来理解如何在 C# 中使用表达式。你能帮我完成这段代码吗?

public List<String> listStr = new listStr();

public List<String> FindString(Expression<Func<String, bool>> predicate)
{
// return a list that satisfies the predicate
}

I'm trying to make an example to understand how to use Expression in c#. Can you help me to complete this code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

北风几吹夏 2024-12-29 06:21:44

像这样的东西吗?

public List<String> FindString(List<String> list, Func<String, bool> predicate)
{
    return list.Where(predicate).ToList();
}

为什么要使用表达式?,如果你想使用它,那么你需要之前编译它,但除非你想在你的方法中对表达式进行一些操作,否则我建议使用上面的(或直接使用 linq 的 .Where() 扩展方法)

public List<String> FindString(List<String> list, Expression<Func<String, bool>> predicate)
{
    var lambda = predicate.Compile();
    return list.Where(lambda).ToList();
}

Something like this?

public List<String> FindString(List<String> list, Func<String, bool> predicate)
{
    return list.Where(predicate).ToList();
}

Why do you use an expression?, if you want to use it then you need to compile it before, but unless you want to do some manipulation of the expression in your method I'd advise using the above (or directly using linq's .Where() extension method)

public List<String> FindString(List<String> list, Expression<Func<String, bool>> predicate)
{
    var lambda = predicate.Compile();
    return list.Where(lambda).ToList();
}
满身野味 2024-12-29 06:21:44
public List<String> FindString(Expression<Func<String, bool>> predicate)
{
  return listStr.Where(predicate.Compile()).ToList();
}
public List<String> FindString(Expression<Func<String, bool>> predicate)
{
  return listStr.Where(predicate.Compile()).ToList();
}
醉梦枕江山 2024-12-29 06:21:44
public List<String> listStr = new List<String>();

public List<String> FindString(Expression<Func<String, bool>> predicate)
{
    // return a list that satisfies the predicate
    Func<string, bool> p = predicate.Compile();
    return listStr.Where(p).ToList();
}

PS:你的变量声明是错误的。

public List<String> listStr = new List<String>();

public List<String> FindString(Expression<Func<String, bool>> predicate)
{
    // return a list that satisfies the predicate
    Func<string, bool> p = predicate.Compile();
    return listStr.Where(p).ToList();
}

P.S.: your variable declaration is wrong.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文