如何将谓词传递给C#中的函数?

如何将谓词传递给C#中的函数?,c#,asp.net,c#-4.0,predicate,C#,Asp.net,C# 4.0,Predicate,我有: public void InitializeStatusList(DropDownList list) { var dictionaryEntries = GetEntriesFromDatabase(); list.DataSource = dictionaryEntries.Where(entry => entry is EntryStatus1 || entry is EntryStatus2); list.DataBind

我有:

 public void InitializeStatusList(DropDownList list)
    {
       var dictionaryEntries = GetEntriesFromDatabase();
       list.DataSource = dictionaryEntries.Where(entry => entry is EntryStatus1 || entry is EntryStatus2);
       list.DataBind();           
    }
我有很多这样的功能。我想用
dictionaryEntries
作为谓词传递的查询条件编写公共函数

例如:

public void InitializeStatusList(DropDownList list)
{
    CommonInitializeStatusList(DropDownList list, entry => entry is EntryStatus1 || entry is EntryStatus2);
}

public void CommonInitializeStatusList(DropDownList list, ??????????????? predicate)
{                       
    var dictionaryEntries = GetEntriesFromDatabase();
    list.DataSource = dictionaryEntries.Where(predicate);
    list.DataBind();        
}
什么代表

提前感谢

函数谓词
应该可以工作,其中
条目
条目
变量的类型。

您可以这样做:

public void InitializeStatusList(DropDownList list)
{    
    Func<Entry,bool> predicate=entry=>entry is EntryStatus1 || entry is EntryStatus2;
    CommonInitializeStatusList(list, predicate);
}

public void CommonInitializeStatusList(DropDownList list, Func<Entry,bool> predicate)
{                                 
    var dictionaryEntries = GetEntriesFromDatabase();    
    list.DataSource = dictionaryEntries.Where(predicate);
    list.DataBind();

}
public void InitializeStatusList(下拉列表)
{    
Func predicate=entry=>条目为EntryStatus1 | |条目为EntryStatus2;
CommonInitializeStatusList(列表,谓词);
}
public void CommonInitializeStatusList(下拉列表,Func谓词)
{                                 
var dictionaryEntries=GetEntriesFromDatabase();
list.DataSource=dictionaryEntries.Where(谓词);
list.DataBind();
}

Thanother@reinierpost,我刚刚修复了
initialize
typo。这个Entry类包含的名称空间/库是什么?@thanatorr-Entry是自定义枚举。@MichałKuliński是的,我现在已经知道了,不过谢谢!