 <p>I'm sure there is a probably a clever way to do this in one line using Linq, but everything I could come up with was quite ugly so I went with something a bit more readable.</p> <pre><code>var results = items.GroupBy(x =&gt; x.TransactionType) .ToDictionary(x =&gt; x.Key, x =&gt; x.Sum(y =&gt; y.TransactionValue)); var totals = new Totals { TotalIncoming = results["Income"], TotalOutgoing = results["Outgoing"] }; </code></pre>