2010-05-17 7 views
7

मान लें कि हमारे पास एक साधारण वर्गसरल linq सवाल: गुणों की एक सरणी पाने के लिए linq का उपयोग कर

public class Foo 
{ 
    public string FooName; 
} 

है अब हम इस पर कुछ सरल काम करना चाहते हैं।

public void SomeCallerMethod(List<Foo> listOfFoos) 
{ 
    string[] fooNames = listOfFoo. // What to do here? 
} 

अगर मुझे यह भी पता चले कि किस विधि को कॉल करना है, तो शायद मुझे बाकी की चोटी मिल सकती है।

+0

नीचे जवाब यू मदद की थी? – Malcolm

उत्तर

16

आप अपनी कक्षा की एक सूची स्ट्रिंग की सरणी में बदलना चाहते हैं। इसके लिए आदर्श विधि Select है, जो प्रत्येक तत्व पर गणना करने योग्य है और आपके द्वारा लौटाए गए प्रकार के आधार पर एक नया गणनीय बनाता है।

आपको लैम्बडा अभिव्यक्ति को चुनिंदा विधि में डालने की आवश्यकता है जो नाम लौटाता है, जो कि "प्रत्येक तत्व के लिए, नाम का चयन करें" होगा।

आपको आउटपुट को सरणी के रूप में डालने की आवश्यकता है।

string[] fooNames = listOfFoos.Select(foo => foo.FooName).ToArray(); 

या, दूसरे सिंटैक्स का उपयोग:

string[] fooNames = (from foo in listOfFoos 
        select foo.FooName).ToArray();