public
Last active

An implementation of ToDictionary that provides information about which key had duplicate entries.

  • Download Gist
ToDictionaryBetter.cs
C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
public static class EnumerableExtensions
{
public static Dictionary<TKey, TSource> ToDictionaryBetter<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
{
return source.GroupBy(keySelector).ToDictionary(group => group.Key, group =>
{
try
{
return group.Single();
}
catch (InvalidOperationException)
{
throw new InvalidOperationException(
string.Format("Duplicate item with the key '{0}'", keySelector(@group.First())));
}
});
}
}

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.