Przepraszam za okropny tytuł, nie byłem pewien, jak sformułować mój problem.Grupowanie danych LINQ Dwukrotnie
Mam obiekt, który wygląda tak:
CustAcct cust = new CustAcct();
cust.Name = "John Doe";
cust.Account = "ABC123";
cust.OrderTotal = 123.43
cust.OrderQty = 4;
cust.TransDate = "12/26/2010 13:00"
proszę nie spędzają zbyt wiele czasu krytykuje kolejną część, bo to naprawdę nie ma do czynienia z zakupów koszyka/rzeczy klienta, ale idea jest tak samo, po prostu chciałem użyć czegoś, z czym wszyscy są dobrze obeznani.
Konto może mieć więcej niż jednego klienta, a klient może mieć więcej niż jedno konto.
Więc trzeba:
List<CustAcct> custList = new List<CustAcct>();
custList.Add("John Doe", "ABC123", 123.43, 4, "12/26/2010 13:00");
custList.Add("John Doe", "ABC123", 32.12, 2, "12/27/2010 10:00");
custList.Add("John Doe", "ABC321", 43.34, 1, "12/28/2010 15:00");
custList.Add("John Doe", "ABC321", 54.60, 3, "12/28/2010 16:00");
custList.Add("Jane Zoe", "ABC123", 46.45, 2, "12/28/2010 17:00");
custList.Add("Jane Zoe", "ABC123", 32.65, 1, "12/29/2010 12:00");
custList.Add("Jane Zoe", "ABC321", 67.65, 3, "12/29/2010 23:00");
custList.Add("Jane Zoe", "ABC321", 75.34, 4, "12/30/2010 08:00");
Co chciałbym zrobić, to suma wszystkich OrderTotal i OrderQty dla każdego konta i Klientem więc moje wyjście będzie wyglądać następująco:
Account Customer OrderTotal OrderQty
ABC123 John Doe 155.55 6
ABC321 John Doe 97.94 4
ABC123 Jane Zoe 79.10 3
ABC321 Jane Zoe 142.99 7
I Przeszedłem przez moją książkę LINQ to Objects i 101 LINQ Samples i nie mogę wymyślić, jak to zrobić. Dzięki.
Czy używasz składni metody lub składni zapytania? –
Używam składni zapytania. z c w CustList ... – Stephen
Czy chcesz pogrupować według kombinacji konta/klienta? Lub po prostu pogrupować według klientów, a następnie według konta? Subtelna różnica, ale wpływa na moją odpowiedź ... –