2011-01-21 23 views
97

मैं निम्नलिखित वर्ग है कहते हैं:ऑब्जेक्ट के गुणों में से एक की एक सरणी के लिए वस्तुओं की एक सूची कन्वर्ट

public class ConfigItemType 
{ 
    public string Name { get; set; } 
    public double SomeOtherThing { get; set; } 
} 

और उसके बाद मैं अब निम्नलिखित वर्गों (List<ConfigItemType> MyList)

की एक सूची बनाने मैं

void AggregateValues(string someUnrelatedValue, params string[] listGoesHere) 

मैं कैसे MyList में listGoesHere करने के लिएमें मूल्य का उपयोग फिट कर सकते हैं: निम्न हस्ताक्षर के साथ एक विधि हैपैराम स्ट्रिंग सरणी के रूप में?

मुझे पूरा यकीन है कि लिंक ऐसा कर सकता है .... लेकिन MyList पर select विधि नहीं है (जो मैंने उपयोग किया होगा)।

उत्तर

204

आप

MyList.Select(x=>x.Name).ToArray(); 

Select के बाद से देख रहे एक एक्सटेंशन विधि है अपनी फ़ाइल के

using System.Linq

जोड़कर कि नाम स्थान जोड़ना सुनिश्चित करें - तो यह Intellisense के साथ दिखाई देंगे ।

+0

यही मैंने सोचा था। लेकिन चयन इंटेलिजेंस में दिखाई नहीं देता है। – Vaccano

+0

+1 –

+0

GAAAAAAA के समान +1! मैं linq याद कर रहा था शामिल हैं! – Vaccano

6

यह भी काम करना चाहिए:

AggregateValues("hello", MyList.ConvertAll(c => c.Name).ToArray()) 
16

मैं काफी यकीन है कि Linq यह कर सकते हैं कि कर रहा हूँ .... लेकिन MyList उस पर एक का चयन विधि नहीं है (जो मैं क्या उपयोग किया जाता है |) ।

हां, LINQ यह कर सकता है। यह बस है:

MyList.Select(x => x.Name).ToArray(); 

सबसे अधिक संभावना मुद्दा यह है कि आप या तो System.Core के लिए एक संदर्भ की जरूरत नहीं है, या आप System.Linq के लिए एक using निर्देश याद कर रहे हैं है।

5

हर किसी के लिए जो .NET 2.0 के साथ अटक गई है, मेरी तरह, निम्नलिखित तरीके (ओपी में उदाहरण के लिए लागू) की कोशिश:

ConfigItemList.ConvertAll<string>(delegate (ConfigItemType ci) 
{ 
    return ci.Name; 
}).ToArray(); 

जहां ConfigItemList अपनी सूची चर रहा है।

+0

.NET 2.0 भीड़ के लिए पोस्ट करने के लिए धन्यवाद! – webworm

संबंधित मुद्दे

 संबंधित मुद्दे