मैं काम नहीं कर सकता हूं कि मैं एक सूची के "खोज" को कैसे कर सकता हूं जिसका उपयोग मैं उस समय के उपयोग के आधार पर करता हूं जिसे मैं रन टाइम पर पास करूंगा। यदि आप मेरा नीचे कोड देखते हैं, तो मैं सूची में कस्टम क्लास ढूंढने में सक्षम होना चाहता हूं जिसके लिए यह पथ पैरामीटर एक्स के बराबर है, जहां एक्स को रन टाइम पर परिभाषित किया जाएगा।सी # सूची। ढूँढें विधि - मैं भविष्य में मूल्य कैसे पास कर सकता हूं?
किसी भी विचार सूची में ऐसे खोज कैसे करें? या यह एक इटरेटर लिखने और मैन्युअल रूप से खोजने के बिना संभव नहीं है? किस मामले में शायद एक कुंजी संग्रह है जिसे मुझे इसके बजाय उपयोग करना चाहिए?
private List<CustomClass> files;
public void someMethod()
{
Uri u= new Uri(www.test.com);
CustomClass cc = this.files.find(matchesUri(u)); // WON'T LET ME DO THIS
}
private static bool matchesUri(List<CustomClass> cc, Uri _u)
{
return cc.Path == _u; }
public class CustomClass
{
private Uri path;
public Uri Path
{
get { return this.path; }
set { this.path = value; }
}
}
पीएस। मैं आप
CustomClass cc = this.files.Find(p=> p.Path == u);
खोजें() विधि अशक्त लौटाता है यदि कोई तत्व मिला था विधेय से मेल खाता है लिख सकते हैं मैं काफी http://msdn.microsoft.com/en-us/library/x0b5b5bc.aspx
धन्यवाद दोस्तों - वैसे - क्या मैं (यदि मैं सी # पर अधिक था) तो क्या मैं डॉको में विधि के सिंटैक्स को देखकर यह काम कर सकता था? (यानी पैरामीटर्स, मैच, टाइप: सिस्टम .. ::। <(Of <(T>)> 0, भविष्यवाणी <(Of <(T>)>) प्रतिनिधि जो तत्व की शर्तों को परिभाषित करने के लिए परिभाषित करता है ... – Greg
पैरामीटर प्रकार के प्रकार को प्रतिबंधित करता है प्रतिनिधि आप विधि को पास कर सकते हैं, और इस प्रकार उस प्रतिनिधि को बनाने के लिए विधि या लैम्बडा के हस्ताक्षर का उपयोग करना होगा। यह किसी भी अन्य प्रतिनिधि प्रकार की तुलना में अब और अपने आप में, lambdas के उपयोग को इंगित नहीं करता है। लैम्बडास के लिए दस्तावेज़ीकरण यहां है: http://msdn.microsoft.com/en-us/library/bb397687.aspx –
प्रतिनिधि फ़ंक्शन पॉइंटर के समान है। हस्ताक्षर को देखकर ('प्रतिनिधि बूल भविष्यवाणी (टी ओबीजे)') आप देख सकते हैं कि एक अनुमान एक कार्य (विधि) है जो ** ** प्रकार का ** एकल पैरामीटर लेता है, और ** बूल ** देता है । –
Groo