2012-05-10 20 views
5

मेरे पास है:सी # में कार्य करने के लिए भविष्यवाणी कैसे करें?

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

धन्यवाद @reinierpost, मैं सिर्फ ठीक करने के बाद 'initialize' टाइपो। –

उत्तर

12

Func<Entry, bool> predicate में के लिए ???????????????

धन्यवाद खड़ा काम करना चाहिए, जहां Entryentry चर का प्रकार है।

+0

इस प्रविष्टि कक्षा के लिए नामस्थान/पुस्तकालय क्या शामिल है? – thanatorr

6

आप इस तरह कर सकते हैं:

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

}