【问题标题】:How to find the column count of list of lists in C#?如何在 C# 中查找列表列表的列数?
【发布时间】:2021-10-22 12:32:27
【问题描述】:
public static void matrix(List<List<int>> matrix)
{
    //matrix.Count is for amount of Row here
}

示例

这里是锯齿状数组

{{ 1,  2,  3},
 { 4,  5,  6},
 { 7,  8,  9},
 {10, 11, 12}}

然后matrix.Count 给出4

这里我要列数。

如果这是 array 而不是 List 那么我可以使用 matrix.GetLength(0)matrix.GetLength(1) 来查找行数和列数?

【问题讨论】:

标签: c# list data-structures jagged-arrays column-count


【解决方案1】:

您正在使用 int 列表的列表。在这种情况下,无法保证您拥有一个具有固定列大小的矩阵。

例如{ {1}, {4,5,6}, {7,8}, {10,11,12,13} } 是一个可能的组合。

但是,如果您确定内部列表具有相同的大小,您可以获得第一个列表的大小。

int column = matrix?.FirstOrDefault()?.Count ?? -1;

不要忘记在代码顶部添加using System.Linq;

【讨论】:

    【解决方案2】:

    一般的情况下,由于你有锯齿状结构,你可以定义不同ColCount:

     {
      { 1, 2, 3  },  // Average Columns - 3
      { 4, 5, 6, 7}, // Max Columns - 4
      { 8, 9},       // Min Columns - 2
     }
    

    假设null 列表有0 列,您可以放置​​:

     using System.Linq;
    
     ...
    
     int minColCount = matrix.Min(list => list?.Count ?? 0); 
     int maxColCount = matrix.Max(list => list?.Count ?? 0);
     int avgColCount = (int)Math.Round(matrix.Average(list => list?.Count ?? 0));
    

    如果你可以保证matrix矩形并且不包含null,你可以放

     int colCount = matrix.Count > 0 ? matrix[0].Count : 0; 
    

    【讨论】:

      猜你喜欢
      • 2020-03-16
      • 2021-03-14
      • 2017-03-26
      • 2015-01-08
      • 2019-10-31
      • 2019-08-18
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      相关资源
      最近更新 更多