C# 当子列表为int时,如何添加列表的总和?
当子列表为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
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());