I’ve been using Linq to Objects for quite some time - so it was quite a surprise to me when I discovered something new recently - the LookUp class.

LookUp is much like the more familiar Dictionary class, but with a few differences that make it easier to use with Linq.

  • Doesn’t require unique keys - there can be multiple instances with the same key. When you lookup a key, the result is a sequence of values;

  • If you index with a key that isn’t there, you get a sequence with zero elements, not an exception.

  • Immutability - an instance of LookUp is created fully formed, with all instances, by the Enumerable.ToLookup() factory extension method.

It seems to me that LookUp addresses the major deficiencies of the Dictionary class, giving us a better tool to use. I know I’ll be making frequent use of LookUp in my own code.


blog comments powered by Disqus
Next Post
A Great Upgrade Experience  13 Feb 2010
Prior Post
Improving on POCO: The ORM Problem  04 Feb 2010
Related Posts
When (not) to use Var  16 Jul 2016
Semantic Types Redux  05 Jun 2016
Semantic Types in C#6  27 May 2016
Property Enhancements for C#  20 Dec 2015
Language Extensions for C#  19 May 2014
When should methods be Static?  09 Oct 2012
Of Method Naming and more  29 Sep 2012
Someone needs an intervention  16 Dec 2011
CallerInfo in C# 5  08 Dec 2011
Regions in C#  16 May 2011
More csharp posts »
Related Pages
February 2010 archive