当子列表为int时,如何添加列表总和?

时间:2017-03-30 16:12:13

标签: c#

当子列表为int时,如何添加List列表的总和。我知道你不能做mainList.Sum();因为你不能添加列表数据类型所以我必须使用循环和另一个列表来绕过它。如果我不想使用循环,有更简单的方法吗?

var mainList = new List<List<int>>( );
mainList.Add(new List<int>{ 6});
mainList [0].Add (5);
mainList [0].Add (3);
mainList.Add(new List<int>{ 7});
mainList [1].Add (5);
mainList [1].Add (2);
mainList.Add(new List<int>{ 8});
mainList [2].Add (5);
mainList [2].Add (19);

无需这样做..

List<int> list = new List<int>();
for (int i =0; i <3; i++)
{
    for (int j = 0; j <mainList[i].Count; j++) 
    {
        list.Add (mainList [i] [j]);
    }
}
Console.Write (list.Sum ()); 

2 个答案:

答案 0 :(得分:5)

LINQ&#39; SelectMany会将对象展平为一个集合,然后您可以在其上调用Sum()

var result = mainList.SelectMany(i => i).Sum();
//result = 60

答案 1 :(得分:1)

或总和:

int sum = mainList.Sum(x => x.Sum());