Na liście obiektów transakcji próbuję grupować według BatchNo, a następnie sumować kwoty.C# LINQ do obiektów: Group By/Sum help
public class Extract
{
// Notable fields in TRANSACTION are: String mBatchNo, String mAmount
private List<Transaction> Transactions;
public void testTransactions()
{
// Sum of amounts grouped by batch number
var sGroup = from t in Transactions
group t by t.mBatchNo into g
select new { batchNo = g.Key,
totalAmount = g.Max(a => (Int32.Parse(a.mAmount)))};
}
}
W tym momencie ja krok do spojrzenia przez okno kodu mieszkańcami, aby zobaczyć, co mój zestaw wyników jest sprawdzenie przed pliku mam importowanego do tego obiektu.
Ostatnia partia w pliku ma 3 rekordy, po 100 sztuk, z których można zobaczyć wiercenia w obiekcie listy transakcji. Jednak przewieranie w dół do wyniku sGroup znajduje tę samą partię, która ma 100 sumy (powinno być 300). Co pomieszałem w tym zapytaniu?
Pamiętaj, że zapisałem to jako ciąg znaków, ponieważ jesteśmy wypełnieni po lewej stronie pola 8-znakowego. Z przyczyn eksportowych postanowiłem przechowywać jako ciąg. Chociaż może to (i prawdopodobnie zostanie) zmienione, nie odpowiada na moje pytanie: jak sprawić, by to zapytanie agregowało sumę w zbiory według BatchNo?
Wow, to był weekend dla mnie! Dziękujemy za wejście do wyjątku! – Mohgeroth