Hallo Zusammen,
ich möchte nicht nur nach SpalteA gruppieren, sondern auch nach SpalteB. Die Spalten enthalten Vornamen bzw. Nachnamen.
Es soll jede Person gruppiert werden. Im Ergebnis müssen beide Spalten enthalten sein. Daher hilft mir eine Verknüpfung der beiden Spalten vermutlich nicht. In der Abfragesyntax funktioniert das relativ einfach mit "Group x by new...". Hier kann man zwei Gruppierungsspalten aufnehmen.
Wie aber funktioniert das in der Extension_Method Syntax?
Hier ist meine vorbereitete Query über eine Spalte. Hier müsste jetzt die zweite SpalteB ergänzt werden.
Noch zur Info:
Der StringComparer sollte auch funktionieren. Es sollen gleiche Namen mit unterschiedlicher Groß-Kleinschreibung als eine Gruppe behandelt werden. Bei einer Spalte funktioniert´s.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42:
| DataTable dt = new DataTable(); dt.Columns.Add("SpalteA"); dt.Columns.Add("SpalteB"); dt.Columns.Add("SpalteC");
DataRow row1 = dt.NewRow(); row1["SpalteA"] = "Frank"; row1["SpalteB"] = "Mustermann"; row1["SpalteC"] = "12,50";
DataRow row2 = dt.NewRow(); row2["SpalteA"] = "frank"; row2["SpalteB"] = "Mustermann"; row2["SpalteC"] = "100,00";
DataRow row3 = dt.NewRow(); row3["SpalteA"] = "klaus"; row3["SpalteB"] = "Mustermann"; row3["SpalteC"] = "500,00";
DataRow row4 = dt.NewRow(); row4["SpalteA"] = "Frank"; row4["SpalteB"] = "Schmidt"; row4["SpalteC"] = "1500,00";
dt.Rows.Add(row1); dt.Rows.Add(row2); dt.Rows.Add(row3); dt.Rows.Add(row4);
var query=dt.AsEnumerable() .GroupBy(x=>x.Field<string>("SpalteA"),StringComparer.InvariantCultureIgnoreCase) .Select(grp=>new { Name=grp.Key });
foreach (var item in query) { } |
Gruß
Frank