c# - 如何在数组[][,]和[,][]中输入和输出值(交错数组和多维数组的混合)
问题描述
我正在尝试改进有关如何在多维数组中查找项目的代码,因为我想在增加数据量时避免将来可能出现的性能问题。我是编程新手,所以有很多我不知道的东西。我一直在围绕多维数组、锯齿状数组、排序等主题进行大量搜索。我想我需要使用锯齿状数组,因为我需要排序才能找到第三大和 6.largest 的数字。但是我意识到我必须就示例寻求一些帮助或链接到更多信息,因为我在定义我的锯齿状数组时遇到了问题。我将尝试隔离每个问题,因为我陷入了一些我认为对于比我更熟悉数组的人来说可能很容易的事情。应该可以混合锯齿状和多维数组根据锯齿状阵列
这是 [][] 的示例,它正在工作
using System;
using System.Collections;
namespace SortJaggedArray
{
class host
{
[STAThread]
static void Main(string[] args)
{
int[][] arr = new int[2][];
arr[0] = new int[3] {1,5,3};
arr[1] = new int[4] {4,2,8,6};
// Write out a header for the output.
Console.WriteLine("Array - Unsorted\n");
for (int i = 0; i < arr.Length; i++)
{
System.Console.WriteLine("Outer array " + i);
for (int j = 0; j < arr[i].Length; j++)
{
System.Console.Write(arr[i][j] + " ");
}
System.Console.WriteLine(" ");
System.Console.WriteLine(" ");
}
Console.ReadLine();
}
}
}
//Output:
//Outer array 0
//1 5 3
//Outer array 1
//4 2 8 6
这是我输入工作的 [][,] 示例,但我在如何编写输出时遇到了困难:
using System;
using System.Collections;
namespace SortJaggedArray
{
class host
{
[STAThread]
static void Main(string[] args)
{
int[][,] arr = new int[2][,]
{
new int[,] { { 1, 3 }, { 5, 2 }, { 3, 9 } },
new int[,] { { 4, 1 }, { 2, 7 }, { 8, 5 }, { 6, 3 } }
};
// Write out a header for the output.
Console.WriteLine("Array - Unsorted\n");
foreach (int i in arr)
Console.WriteLine(i);
Console.ReadLine();
}
}
}
Wanted output:
Nr 0:
1, 3
5, 2
3, 9
Nr 1:
4, 1
2, 7
8, 5
6, 3
问题一:WriteLine / for / foreach 怎么写才能看到锯齿状数组 [][,] 的内容?
问题 2:我想将其更改为 [,][] 但是我遇到了如何在这种锯齿状数组中输入/输出数据的问题。如何输入数据?如何写 / for / foreach 来查看锯齿数组 [,][] 的内容?
解决方案
您需要遍历每个维度:
for(int i=0; i<arr.Length; i++){
Console.WriteLine($"Nr {i}:");
for(int j=0;j<arr[i].GetLength(0);j++){
for(int k=0;k<arr[i].GetLength(1);k++){
Console.Write($"{arr[i][j,k]} ");
}
Console.WriteLine();
}
Console.WriteLine();
}
输出:
Nr 0:
1 3
5 2
3 9
Nr 1:
4 1
2 7
8 5
6 3
推荐阅读
- java - 为什么位图大小在不同的屏幕上会发生变化?
- python - Python彩票生成器我试图弄清楚如何添加一个数字输入,并将它们分开并成为x数量的num long
- angular - Ag-grid + Angular 2:动态更改行节点中列的cellClass
- runtime - 运行时间和 theta 符号
- go - 为什么命令“go clean -n -r -i github.com/ethereum/go-ethereum...”不起作用?
- android - 混淆 API 是什么意思?
- c# - 自定义 ListViewItem 控件显示类名,其中常规 ListView 控件显示实际数据
- react-native - React-Native Redux Navigation 返回第一页 问题
- php - 在潜在客户模块中导出关系字段
- amazon-web-services - Ruby 捆绑控制台未从 ~/.aws/credentials 加载 aws 共享凭证