在列表的所有元素上计算表达式

本文关键字:计算 表达式 元素 列表 | 更新日期: 2023-09-27 18:18:19

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> 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();
}
public List<String> FindString(Expression<Func<String, bool>> predicate)
{
  return listStr.Where(predicate.Compile()).ToList();
}
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:你的变量声明是错误的。