2012-05-10 7 views
5

Tôi có:Làm thế nào để chuyển vị ngữ để hoạt động trong C#?

public void InitializeStatusList(DropDownList list) 
    { 
     var dictionaryEntries = GetEntriesFromDatabase(); 
     list.DataSource = dictionaryEntries.Where(entry => entry is EntryStatus1 || entry is EntryStatus2); 
     list.DataBind();   
    } 

Tôi có nhiều chức năng này. Tôi muốn viết chức năng chung với điều kiện truy vấn dictionaryEntries được chuyển thành vị từ.

Ví dụ:

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();   
} 

gì là viết tắt của ???????????????

Cảm ơn trước

+0

Cảm ơn @reinierpost, tôi vừa cố định 'initialize' typo. –

Trả lời

12

Func<Entry, bool> predicate nên làm việc, nơi Entry là loại entry biến.

+0

không gian tên/thư viện để bao gồm cho lớp này là gì? – thanatorr

6

Bạn có thể làm như thế này:

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(); 

}