How to find the maximum value for each key in a List of Dictionaries using LINQ?
Posted
by Argos
on Stack Overflow
See other posts from Stack Overflow
or by Argos
Published on 2009-08-12T15:51:25Z
Indexed on
2010/04/20
6:13 UTC
Read the original article
Hit count: 264
I have a List of Dictionaries that have keys of type string and values that are ints.
Many of the dictionaries have the same keys in them but not all of them.
So my question is: using LINQ how would I find the maximum value associated with each distinct key across all of the dictionaries?
So for example given the following input:
var data = new List<Dictionary<string, int>>
{
new Dictionary<string, int> {{"alpha", 4}, {"gorilla", 2}, {"gamma", 3}},
new Dictionary<string, int> {{"alpha", 1}, {"beta", 3}, {"gamma", 1}},
new Dictionary<string, int> {{"monkey", 2}, {"beta", 2}, {"gamma", 2}},
};
I would like some kind of collection that contains:
{"alpha", 4},
{"gorilla", 2},
{"gamma", 3},
{"beta", 3},
{"monkey", 2}
(I'm currently looping through the list and keeping track of things myself, really just wondering if there is a nicer LINQ-esque way of doing it)
EDIT: I also don't know what the string keys are in advance
© Stack Overflow or respective owner