如何将List <double []>的元素乘以标量

时间:2016-09-29 06:04:55

标签: c# linq

拥有List<double[]>数据

List<double[]> sqlResult = new List<double[]>();
sqlResult.Add(new double[] { 11, 21, 31 });
sqlResult.Add(new double[] { 12, 22, 32 });
sqlResult.Add(new double[] { 13, 23, 33 });
sqlResult.Add(new double[] { 14, 24, 34 });

如何将每行的第三个元素乘以-1,以便我得到

{ 11, 21, -31 }
{ 12, 22, -32 }
{ 13, 23, -33 }
{ 14, 24, -34 }

不知道如何使用LINQ

sqlResult= sqlResult.xxx(item = -item[2]).ToList();     

3 个答案:

答案 0 :(得分:3)

如果您通过索引避免访问,如果列表中的元素少于3个,则不会出现异常。

sqlResult = sqlResult.Select(x => x.Select((y, i) => i == 2 ? -y : y).ToArray()).ToList();

答案 1 :(得分:1)

var result = sqlResult.Select(x => new double[] { x[0], x[1], x[2] * -1}).ToList();

答案 2 :(得分:1)

试试这个

sqlResult.ForEach(y => y[2]= y[2] * -1);