使用带有List<>的foreach循环

时间:2016-12-27 22:20:03

标签: c#

我有一个像这样的数组

for (var i = 0; i < objectLength; i++) {
  var submitray = query.key[i].split(","); //error
  var qid = submitray[0];
  var userAnswer = submitray[1];
}

带有字段的对象:

public List<Application> all_roads = new List<Application>();

我想从所有对象中计算public string point_of_distination; public uint length_of_route; public double price; public string our_drv_name; public string our_drv_surname; public string our_bus_model; public double gen_ticket_price; public short cur_year; public byte cur_day; public byte cur_month; public double tour_consumption; 的一般总和。 我应该如何为此编写tour_consumption循环? 请帮我。

4 个答案:

答案 0 :(得分:6)

如果您只想计算tour_consumption,可以试试这个:

var sum = all_roads.Sum(x => x.tour_consumption);

您无需明确选择tour_consumption。您可以直接将lambda表达式传递给Sum()函数。

请阅读以下article中LINQ Sum()方法的工作原理。

另外,如果您想使用System.Linq方法,请确保包含Sum()命名空间。

答案 1 :(得分:3)

使用Linq会更容易:

var sum = all_roads.Sum(x => x.tour_consumption);

如果你真的想使用for循环:

double sum = 0;
for(var i = 0; i < all_roads.Count; i++)
{
   sum += all_roads[i].tour_consumption;
}

或foreach循环

double sum = 0;
foreach (var app in all_roads)
{
   sum += app.tour_consumption;
}

答案 2 :(得分:3)

double sum = 0;
foreach (var item in all_roads)
{
   sum += tour_consumption;
}

答案 3 :(得分:0)

像其他人一样说:

double sum = 0.0;
foreach (var app in all_roads)
    sum += app.tour_consumption;

您还可以查看:https://msdn.microsoft.com/en-us/library/ttw7t8t6.aspx了解有关foreach循环的更多信息,或https://msdn.microsoft.com/en-us/library/bb397687.aspx了解有关Lambda表达式的更多信息