代码之家  ›  专栏  ›  技术社区  ›  saastn

如何使用LINQ对未知数量数组的元素求和?

  •  1
  • saastn  · 技术社区  · 7 年前

    这是我的代码,它使用循环:

    static void Main(string[] args)
    {
        List<int[]> list = new List<int[]>();
        int n = 4;
        list.Add(new int[] { 1, 2, 3, 4 });
        list.Add(new int[] { 5, 6, 6, 7 });
        list.Add(new int[] { 8, 9, 10, 11 });
    
        int[] sum = new int[n];
        foreach (int[] array in list)
            for (int i = 0; i < n; i++)
                sum[i] += array[i];
        foreach (int value in sum)
            Console.Write($"{value} ");
        Console.Read();
    }
    
    1 回复  |  直到 7 年前
        1
  •  6
  •   Nico Schertler    7 年前
    var sum = list[0].Select((value, i) => list.Sum(sublist => sublist[i]));
    

    空车需要特殊处理 list .

    sublist => sublist[i]
    

    给予 sublist (即其中一个数组),这将选择 i -第四元素。

    list.Sum(sublist => sublist[i])
    

    此查询计算单个数字,即所有数字的总和 我 -子列表中的th元素 列表 .

    list[0].Select((value, i) => list.Sum(sublist => sublist[i]))
    

    这将为中的每个条目选择一个数字 list[0] . 这个数字是所有数字的总和 我 -子列表中的第个条目。