Hey MIteinander,
ich arbeite gerade an einem Buchhaltungsprogramm. Hier gibt es eine Klasse Account und eine Klasse Booking. Die Klasse Account hat eine List<int> Debits und eine List<int> Credits. In diesen Listen sind jeweils die IDs der Buchungen enthalten. Nun möchte ich die Balance des Accounts berechnen.
Dies möchte ich als Extension haben. Ich übergebe also das Account und die komplette LIste aller Bookings. Meine Frage ist nun, wie mappe ich alle BookingIDs zu den entsprechenden Bookings mit LINQ. Der eine ForEach-Loop soll quasi weg. Ich hab mich in der Vergangenheit immer nur mit den einfachen LINQ-Themen befasst und stehe hier gerade auf dem Schlauch.
*Topic verschoben*
ich arbeite gerade an einem Buchhaltungsprogramm. Hier gibt es eine Klasse Account und eine Klasse Booking. Die Klasse Account hat eine List<int> Debits und eine List<int> Credits. In diesen Listen sind jeweils die IDs der Buchungen enthalten. Nun möchte ich die Balance des Accounts berechnen.
C#-Quellcode
- public static double Balance(this Account account, IEnumerable<Booking> bookings)
- {
- List<Booking> debits = new();
- List<Booking> credits = new();
- foreach (var bookingID in account.Debit)
- debits.Add(bookings.FirstOrDefault(x => x.ID == bookingID));
- foreach (var bookingID in account.Credit)
- credits.Add(bookings.FirstOrDefault(x => x.ID == bookingID));
- return debits.Sum(x => x.Amount) - credits.Sum(x => x.Amount);
- }
Dies möchte ich als Extension haben. Ich übergebe also das Account und die komplette LIste aller Bookings. Meine Frage ist nun, wie mappe ich alle BookingIDs zu den entsprechenden Bookings mit LINQ. Der eine ForEach-Loop soll quasi weg. Ich hab mich in der Vergangenheit immer nur mit den einfachen LINQ-Themen befasst und stehe hier gerade auf dem Schlauch.
*Topic verschoben*
Die Unendlichkeit ist weit. Vor allem gegen Ende.
Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken.
Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()