对列表<object []>进行分组和求和

Adm*_*eur 7 c# linq lambda

我有这个 List<object[]>

List<object[]> olst = new List<object[]>();

olst.Add(new object[] { "AA1", 1 });
olst.Add(new object[] { "AA2", 1 });
olst.Add(new object[] { "AA2", 1 });
olst.Add(new object[] { "AA1", 1 });
olst.Add(new object[] { "AA1", 1 });
Run Code Online (Sandbox Code Playgroud)

从中olst,我需要制作一个新的List<object>来持有这个:

"AA1", 3
"AA2", 2
Run Code Online (Sandbox Code Playgroud)

换句话说,我需要对olst [x] [0]进行分组并总结olst [x] [1].
我可以使用for循环,但我希望有人可以帮我使用lambda表达式和/或linq来实现这一点.

And*_*ker 6

使用GroupBySelect:

List<object[]> newList = olst
    /* Group the list by the element at position 0 in each item */
    .GroupBy(o => o[0].ToString())
    /* Project the created grouping into a new object[]: */
    .Select(i => new object[]
    {
        i.Key,
        i.Sum(x => (int)x[1])
    })
    .ToList();
Run Code Online (Sandbox Code Playgroud)