2009-08-04 11 views
5

मेरे पास List ऑब्जेक्ट्स हैं जिनमें स्ट्रिंग सरणी उनके गुणों में से एक है। मैं सभी मानों वाला एक अलग स्ट्रिंग सरणी प्राप्त करना चाहता हूं।LINQ - ऑब्जेक्ट पदानुक्रम से सभी बच्चों का चयन करें

मेरे वस्तु इस तरह दिखता है:

public class Zoo { 
    string Name { get; set;} 
    string[] Animals { get; set;} 
} 

कुछ चिड़ियाघरों केवल एक जानवर हो सकता है, कुछ बहुत हो सकता है। List<Zoo> में सभी चिड़ियाघर में सभी जानवरों की एक अनूठी सूची प्राप्त करने के लिए सबसे सरल लैम्ब्डा अभिव्यक्ति या LINQ क्वेरी क्या होगी?

उत्तर

12
var query = zoos.SelectMany(zoo => zoo.Animals) 
       .Distinct(); 

या आप एक प्रश्न अभिव्यक्ति प्रशंसक रहे हैं (मैं कुछ इस सरल के लिए नहीं होगा):

var query = (from zoo in zoos 
      from animal in zoo.Animals 
      select animal).Distinct(); 
+0

धन्यवाद, जॉन। मेरे हिस्से पर टाइपो। –

+0

टाइपो कहां था? मुझे इसे याद करना होगा :) –

+4

टाइपो मेरे आवेदन में था। मैं विजुअल स्टूडियो के लिए स्टैक ओवरव्लो एडिन तक इंतजार नहीं कर सकता जब तक कि मैं काम करता हूं, आप मेरे ऐप्स को ठीक कर सकते हैं। :-) –

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