2010-08-25 17 views
5

que estoy tratando de hacer esto:C# concat dos Colección <string> mediante LINQ y conseguir una colección <string> resultado

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

var result = collection1.Concat(collection2); 

Pero la variable de resultado es de tipo Enumerable [System.String] , mientras que yo quiero una colección de fundición [System.String]

he intentado:

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

Pero no hay alegría.

Respuesta

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

Por alguna razón System.Collections.ObjectModel.Collection requiere un parámetro IList a ella de constructor. (Las otras colecciones solo necesitan un IEnumerator)

4

Use Enumerable.ToList(), como List<> es un ICollection<>.

ej .:

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

Si significaba System.ObjectModel.Collection<> entonces usted tendrá que pasar a la lista creada en el constructor de Collection<>, no es ideal que conozco.

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