Я работаю в месте, где все внутренние клиенты имеют старую версию .NET, поэтому мне нужно обойтись без LINQ. Я пытаюсь достичь чего-то довольно простого. Список моего класса выглядит так:
List<TestClass> list = new List<TestClass>()
{
new TestClass(){ ThisName= "A", ThisNumber = 12},
new TestClass(){ ThisName= "B", ThisNumber = 4},
new TestClass(){ ThisName= "A", ThisNumber = 7},
new TestClass(){ ThisName= "C", ThisNumber = 14},
new TestClass(){ ThisName= "C", ThisNumber = 13},
new TestClass(){ ThisName= "B", ThisNumber = 10},
new TestClass(){ ThisName= "B", ThisNumber = 8},
new TestClass(){ ThisName= "C", ThisNumber = 16},
new TestClass(){ ThisName= "A", ThisNumber = 17},
new TestClass(){ ThisName= "B", ThisNumber = 11},
};
return list;
и конечный результат должен выглядеть следующим образом:
A 36
B 33
C 43
с LINQ Я бы просто написал этот код:
Dictionary<string, int> dict = source.GroupBy(x => x.ThisName).Select(g => new {Key = g.Key, Value = g.Sum( h => h.ThisNumber)}).ToDictionary(g => g.Key, g => g.Value);
НО, я должен добиться того же самого без LINQ.
Заранее спасибо за любую идею.