如何将谓词传递给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是的,我现在已经知道了,不过谢谢!