Можете ли вы перегрузить Sum, чтобы добавить собственные типы

У меня есть структура Money, в которой есть валюта и сумма. Я хотел бы иметь возможность суммировать список с помощью linq.

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 };
    }
}

Учитывая приведенный выше код, если у меня есть список элементов, которые имеют объекты значения Money, можно ли заставить функцию Sum работать с объектом значения Money.

т.е.

Items.Sum(m => m.MoneyValue);
11
задан cuongle 10 September 2012 в 09:16
поделиться