簡體   English   中英

計算列表中所有元素的表達式

[英]evaluate an expression on all the elements of a list

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

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

我正在嘗試舉一個例子來了解如何在c#中使用Expression。 您能幫我完成此代碼嗎?

像這樣嗎

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:您的變量聲明錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM