How to find the maximum value for each key in a List of Dictionaries using LINQ?
- by Argos
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