答案 0 :(得分:2)
您应该可以非常轻松地获得行长度,因为它只是数组数组中单个数组的长度。例如:arrays[3].length
为8。
列是不同的,因为我们需要有关每个数组的信息。我们可以遍历,计算长度大于您要查找的列数的数组的数量。
public static int getColumnLength(int[][] arrays, int columnNumber) {
int count = 0;
for(int i = 0; i < arrays.length; i++) {
if (arrays[1].length > columnNumber) {
count++;
}
}
}
答案 1 :(得分:2)
方法getColumnLength只是遍历每一行并检查该行是否足够长以使列在其中。如果是,则将其添加到具有该列的行数。
public class Program {
public static void Main(string[] args) {
int[][] jaggedArray = {
new int[] {1,3,5,7,9},
new int[] {0,2,4,6},
new int[] {11,22}
};
Console.WriteLine(getColumnLength(jaggedArray, 4));
Console.WriteLine("Press any key to continue. . .");
Console.ReadKey();
}
private static int getColumnLength(int[][] jaggedArray, int columnIndex) {
int count = 0;
foreach (int[] row in jaggedArray) {
if (columnIndex < row.Length) count++;
}
return count;
}
}
答案 2 :(得分:1)
使用LINQ!
public static int GetColumnSize<T>(this T[][] array, int columnNumber) =>
array
.Where(subArray => subArray.Length > columnNumber)
.Count();
public static int GetRowSize<T>(this T[][] array, int rowNumber) =>
(array.Length <= rowNumber)
? array[rowNumber].Length
: 0;
答案 3 :(得分:-1)
我的任务是溢出列,例如,如果我在位置[2] [2](编号9),当用户输入“上4步”时,我需要从列的另一侧输入转到图像上的元素[4] [2](数字15)。
我有以下溢出方法:
static int index(int i, int n)
{
return i % n < 0 ? n + (i % n) : i % n;
}
其中i是当前位置,n是列/行的长度