Konvertieren Linq ObjectQuery IQueryable IEnumerable
Völlig verwirrt über die Daten-Typen, die erforderlich sind hier.
Habe ich diese Linq-Anweisung:
var feat = AllCustomers
.Select(c => c.CustomerServices.SelectMany(cs => cs.CustomerServiceFeatures)
.SelectMany(csf => csf.ConfigElements).Where(ce => ce.Name == "ItemType").Select(ce => ce.Value).Distinct());
Es gibt die erforderlichen Daten ein, und der VS sagt mir, dass der Typ festgelegt wird als:
System.Data.Objects.ObjectQuery<System.Collections.Generic.IEnumerable<string>>
Allerdings möchte ich hinzufügen, dass diese Daten in eine Liste von strings:
List<string> itemTypes = new List<string>();
itemTypes.AddRange(feat);
Aber das wirft einen Fehler:
Argument 1: cannot convert from 'System.Linq.IQueryable<System.Collections.Generic.IEnumerable<string>>' to 'System.Collections.Generic.IEnumerable<string>'
Ich nicht finden können, die erforderliche syntax cast auf richtigen Typ. Kann mir jemand helfen?
Cheers,
Matt
InformationsquelleAutor Matt Thrower | 2010-12-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Compile-Zeit-Fehler zeigt, dass
feat
ist "Sammlung von Sammlung von string" (wörtlich "IQueryable von IEnumerable string"). So müssen Sie zum generieren der flat Kollektion.InformationsquelleAutor The Smallest
System.Data.Objects.ObjectQuery<T>
ist eine Implementierung vonSystem.Linq.IQueryable<T>
. Ihre Art, jedoch ist ein IQueryable von IEnumerable-Objekte. Führen Sie eine SelectMany, damit Sie nicht länger eine Sammlung von string-Sammlungen, sondern einfach eine Sammlung von strings.InformationsquelleAutor Joachim VR
Je nachdem, was Sie tun müssen, um mit der Liste können Sie nur:
InformationsquelleAutor veggerby
können Sie
InformationsquelleAutor Davita