我有:
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();
}
什么代表???????????????
提前致谢
答案 0 :(得分:14)
Func<Entry, bool> predicate
应该有效,其中Entry
是entry
变量的类型。
答案 1 :(得分:7)
你可以这样做:
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();
}