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

C# 当子列表为int时,如何添加列表的总和?,c#,C#,当子列表为int时,如何添加列表列表的总和。我知道您不能执行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 L

当子列表为int时,如何添加列表列表的总和。我知道您不能执行
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);
var mainList=新列表();
mainList.Add(新列表{6});
主列表[0]。添加(5);
主列表[0]。添加(3);
mainList.Add(新列表{7});
主列表[1]。添加(5);
主列表[1]。添加(2);
mainList.Add(新列表{8});
主列表[2]。添加(5);
主列表[2]。添加(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 ()); 
List List=新列表();

对于(int i=0;iLINQ的
SelectMany
将对象展平为一个集合,然后您可以对其调用
Sum()

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

LINQ的
SelectMany
将对象展平为一个集合,然后您可以对其调用
Sum()

var result = mainList.SelectMany(i => i).Sum();
//result = 60
或将金额相加:

int sum = mainList.Sum(x => x.Sum());
或将金额相加:

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

接下来的问题是,SelectMany遍历了整个主列表和子列表。如果我只想遍历主列表和第一个元素子列表,该怎么办?是否仍然可以不使用循环来完成@Jonesopolis@joesmhoe,您可以将Slai的代码修改为:
int sum=mainList.sum(x=>x.FirstOrDefault())
后续问题,SelectMany遍历整个主列表和子列表。如果我只想遍历主列表和第一个元素子列表,该怎么办?是否仍然可以不使用循环来完成@Jonesopolis@joesmhoe,您可以将Slai的代码修改为:
intsum=mainList.sum(x=>x.FirstOrDefault());