Tôi có cấu trúc Tiền có tiền tệ và số tiền. Tôi muốn có thể tổng hợp một Danh sách bằng cách sử dụng LINQ.Bạn có thể quá tải Tổng cộng để thêm các loại tùy chỉnh
public struct Money
{
public string Currency { get; set; }
public decimal Amount { get; set; }
public static Money operator +(Money m1, Money m2)
{
if (m1.Currency != m2.Currency)
throw new InvalidOperationException();
return new Money() { Amount = m1.Amount + m2.Amount, Currency = m1.Currency };
}
}
Cho mã trên nếu tôi có danh sách các mục có đối tượng giá trị tiền, bạn có thể nhận hàm Sum hoạt động với đối tượng giá trị tiền.
tức
Items.Sum(m => m.MoneyValue);
Thực ra, có vẻ như + của bạn sẽ không hài lòng 100% với tổng MiscUtil chung, do sử dụng 'mặc định (T)'; Tôi tự hỏi liệu bạn có nên thay đổi 'Tiền' thành hào phóng hơn không - tức là 'someValue + default (Money) => someValue' –
Ngoài ra - cấu trúc có thể thay đổi; * awoooga *, * awoooga * ... –