使用Linq将二维数组除以2,然后打印它

本文关键字:然后 打印 Linq 二维数组 使用 | 更新日期: 2023-09-27 18:16:34

我有一个任务:

[+]创建4x4数组,填充随机int值,从最小到最大排序每列,打印这个数组。
[+]创建一个方法,将这个数组作为传入参数,并将其中的每个成员加倍,并将其打印出来。
[-]创建一个方法,将这个数组作为传入参数,并将其除以2。使用linq执行此操作,然后打印结果数组。

using System;
using System.Linq;
class Example
{
    static void Main()
    {
        Random random = new Random();
        int n = 4;
        int[][] arr = new int[4][];
        for (int i = 0; i < n; i++)
            arr[i] = new int[4];
        for (int i = 0; i < 4; i++)
            for (int j = 0; j < 4; j++)
                arr[i][j] = random.Next(0, 19);
        Console.WriteLine("Generated array: ");
        PrintArr(arr);
        foreach (int[] mas in arr)
            Array.Sort(mas);
        Console.WriteLine("'nSorted array: ");
        PrintArr(arr);
        DoubleIt(arr);
        DivideIt(arr);
    }
    static void PrintArr(int[][] array)
    {
        for (int i = 0; i < 4; i++)
        {
            for (int j = 0; j < 4; j++)
                Console.Write("{0,4}", array[i][j]);
            Console.WriteLine();
        }
    }
    static void DoubleIt(int[][] incoming_arr)
    {
        Console.WriteLine("'nDoubled array:");
        for (int i = 0; i < 4; i++)
        {
            for (int j = 0; j < 4; j++)
            {
                incoming_arr[i][j] *= 2;
                Console.Write("{0,4}", incoming_arr[i][j]);
            }
            Console.WriteLine();
        }
    }
    static void DivideIt(int[][] incoming_arr)
    {
        Console.WriteLine("'nHere will be division by 2.");
        var DividingArr = from arr in incoming_arr
                         select arr;
    }
}

我有麻烦使用linq与二维数组。你能帮我吗?

使用Linq将二维数组除以2,然后打印它

数组有两种:多维数组(单个数组可以有多个维度)和单维数组(单个数组只有一个维度)。

由于LINQ只适用于一维数组,所以必须将2D数组建模为元素为1D数组的1D数组。所以不是int[4,4],而是int[4][4]

我建议您创建一个4列的数组,其中每列是一个4行的数组。这将使单独排序列更容易。

下面是如何使用LINQ创建数组的数组:

var rand = new Random();
var array = (from col in Enumerable.Range(0, 4)
             select (from row in Enumerable.Range(0, 4)
                     select rand.Next()).ToArray()).ToArray();

下面是如何使用LINQ对数组的每个元素进行操作(在本例中是除以2):

var half = (from col in array
            select (from row in col
                    select row / 2).ToArray()).ToArray();

注意,这会创建一个新的数组,而不是修改您现有的

相关文章: