Frage

Ich habe eine Anforderung eine bestimmte Untergruppe von Zeilen aus einer Datentabelle zu extrahieren, und dachte LINQ2DataSets eine nützliche und saubere Art und Weise, dies zu tun sein kann, jedoch scheint es, dass es nicht möglich ist, einfach Rückkehr Zeilen aus einer LINQ2DS Abfrage zu identifizieren folgt

var result = from r in fips.AsEnumerable() select
r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"),
r.Field<string>("PROCESS_SUB_GROUP_NAME"),
r.Field<string>("...

, wie ich erhalte Fehler nach dem ersten Komma starten.

Ist das eine richtige Annahme, und wie würde ich um eine Teilmenge von Spalten aus dem Datensatz zurück, dass ich einen Distinct () Methode anwenden kann?

War es hilfreich?

Lösung

Sie haben vergessen, die neue Anweisung und Feldnamen:

var result = from r 
    in fips.AsEnumerable() 
    select new
    {
        FacProcess = r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"),
        GroupName = r.Field<string>("PROCESS_SUB_GROUP_NAME"),
        Item3 = r.Field<string>("Item3")
    };

Sie können auch erklären ausdrücklich, dass Sie eine Art verwenden werden:

var result = from r 
    in fips.AsEnumerable() 
    select new MyType("InitClassParams") 
    {
        FacProcess = r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"),
        GroupName = r.Field<string>("PROCESS_SUB_GROUP_NAME"),
        Item3 = r.Field<string>("Item3")
    };

Scott Guthrie (VP Entwickler Devision, Microsoft) hat einige gute Informationen über LINQ (er spricht über LINQ to SQL, aber das meiste davon gilt unabhängig).

Dann bewerben Sie sich die unterschiedliche Klausel:

var result = from r 
    in fips.AsEnumerable() 
    select new
    {
        FacProcess = r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"),
        GroupName = r.Field<string>("PROCESS_SUB_GROUP_NAME"),
        Item3 = r.Field<string>("Item3")
    }
    distinct;

Dann legen Sie es eine Liste oder iterieren es. Es wird nichts ausgewählt / distincted / etc, bis so etwas wie auf dem folgenden ausgeführt wird:

var list = result.ToList()
foreach(var item in result) {}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top