获取二维数组里面实际存有数据的行数
Posted 微光-倾城
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取二维数组里面实际存有数据的行数相关的知识,希望对你有一定的参考价值。
写程序时遇到需要获取二维数组里面实际存有数据的行数,看到几篇博客中获取数组行数用的居然是array.Rank方法。这是获取维度的方法啊,我在下面贴出了我找到的正确的方法,很实用。
/// <summary> /// 获取二维数组里面实际存有数据的行数 /// </summary> public static List<int> GetHasValueRowIndex(string[,] arr) { var hasValueRowIndex = new List<int>(); for (var i = 0; i < arr.GetLength(0); i++) { for (var j = 0; j < arr.GetLength(1); j++) { if (!string.IsNullOrEmpty(arr[i, j])) { hasValueRowIndex.Add(i); break; } } } return hasValueRowIndex; } //Demo string[,] a = new string[9, 3]; a[0, 0] = "a"; a[2, 0] = "b"; a[4, 0] = "c"; a[6, 0] = "d"; a[8, 0] = "e"; var arr = GetHasValueRowIndex(a); Console.WriteLine("HasValue Row Count:" + arr.Count); arr.ForEach(o => Console.WriteLine(o)); /* HasValue Row Count:5 0 2 4 6 8 */
int[,] array = new int[,] {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};//定义一个4行3列的二维数组 int dimension= array.Rank;//获取数组维数;值为2 int row = arr.GetLength(0); // 返回第一维的长度(所谓的“行数”)(所有数据的行数不是实际存了数据的行数) int col = array.GetLength(1);//获取指定维度中的元素个数,这里也就是列数了。(0是第一维,1表示的是第二维);值为3 int col = array.GetUpperBound(0)+1;//获取指定维度的索引上限,在加上一个1就是总数,这里表示二维数组的行数 int num = array.Length;//获取整个二维数组的长度,即所有元的个数
以上是关于获取二维数组里面实际存有数据的行数的主要内容,如果未能解决你的问题,请参考以下文章