2010-08-25 7 views
5

मैं यह करने के कोशिश कर रहा हूँ हो रही:सी # दो संग्रह <string> concat LINQ का उपयोग कर और एक संग्रह <string> परिणाम

var collection1 = new Collection<string> {"one", "two"}; 
var collection2 = new Collection<string> {"three", "four"}; 

var result = collection1.Concat(collection2); 

लेकिन परिणाम चर, टाइप Enumerable [System.String] है, जबकि मैं एक संग्रह चाहते हैं [System.String]

मैं कोशिश की है कास्टिंग:

var all = (Collection<string>) collection1.Concat(collection2); 

लेकिन कोई खुशी।

उत्तर

12
var result = new Collection<string>(collection1.Concat(collection2).ToList()); 

किसी कारण System.Collections.ObjectModel.Collection के लिए यह के निर्माता के लिए एक IList पैरामीटर की आवश्यकता है। (अन्य संग्रहों को केवल IEnumerator की आवश्यकता है)

4

Enumerable.ToList() का उपयोग करें, List<>ICollection<> है।

उदा .:

IList list = a.Concat(b).ToList() 

यदि आप मतलब System.ObjectModel.Collection<> तो आप Collection<> के निर्माता में बनाई गई सूची पारित करने के लिए, आदर्श नहीं मुझे पता करना होगा।

var collection = new System.ObjectModel.Collection<string>(a.Concat(b).ToList());