C# 将矩阵保存在数组中

C# 将矩阵保存在数组中,c#,arrays,matrix,C#,Arrays,Matrix,我对C#很熟悉 我将矩阵构建为多维数组。数据由单个字符组成 a | g | f | r | o t | * | h | s | u y | j | f | . | k 所以我用 char[,] matrix= new char[5, 3]; 这样我就有了一个矩阵,有5个colmun和3行。 现在我想收集不同的矩阵,并将其保存在一个新数组或另一种结构中 在伪代码中,我要执行以下操作: arrayOfMatrix.AddNewItem(matrix); 收集一个数组(或列表?)中的所有矩阵。

我对C#很熟悉

我将矩阵构建为多维数组。数据由单个字符组成

a | g | f | r | o
t | * | h | s | u
y | j | f | . | k
所以我用

char[,] matrix= new char[5, 3]; 
这样我就有了一个矩阵,有5个colmun和3行。 现在我想收集不同的矩阵,并将其保存在一个新数组或另一种结构中

在伪代码中,我要执行以下操作:

arrayOfMatrix.AddNewItem(matrix);
收集一个数组(或列表?)中的所有矩阵。执行此操作的最佳方法是什么?

您可以使用一个通用的多维数组,如下所示:

List<char[,]> arrayOfMatrix = new List<char[,]>();
arrayOfMatrix.Add(matrix1);
arrayOfMatrix.Add(matrix2);
List arrayOfMatrix=new List();
arrayOfMatrix.Add(matrix1);
arrayOfMatrix.Add(matrix2);
您可以使用一个通用的多维数组,如下所示:

List<char[,]> arrayOfMatrix = new List<char[,]>();
arrayOfMatrix.Add(matrix1);
arrayOfMatrix.Add(matrix2);
List arrayOfMatrix=new List();
arrayOfMatrix.Add(matrix1);
arrayOfMatrix.Add(matrix2);
只需创建一个
列表

List
是一种集合类型,其作用类似于数组,但它没有固定的长度,因此您可以向其中动态添加项

让我们看看这一点的行动

首先,创建一个字符矩阵列表:

var list = new List<char[,]>();
您可以通过调用列表的索引器来访问列表:

Console.WriteLine(list[0]);
列表
中有很多很酷的方法和属性,可以让您随心所欲地操作它:

  • 计数
  • 包含
  • 清除
  • 查找
  • IndexOf
  • 插入
  • 删除
  • 反向
  • 排序
有关更多信息,请转到。

只需创建一个
列表

List
是一种集合类型,其作用类似于数组,但它没有固定的长度,因此您可以向其中动态添加项

让我们看看这一点的行动

首先,创建一个字符矩阵列表:

var list = new List<char[,]>();
您可以通过调用列表的索引器来访问列表:

Console.WriteLine(list[0]);
列表
中有很多很酷的方法和属性,可以让您随心所欲地操作它:

  • 计数
  • 包含
  • 清除
  • 查找
  • IndexOf
  • 插入
  • 删除
  • 反向
  • 排序

有关更多信息,请转到。

如果您处理的是
char
元素,则将
char
s行表示为
字符串将更简单。因此,矩阵变成了字符串数组或字符串列表

List<string> matrix = new List<string>()
{
   "agfro",
   "t*hsu",
   "yjf.k"
}
列表矩阵=新列表()
{
“agfro”,
"徐国雄",,
“yjf.k”
}
宣布:

List<List<string>> matrix_list = new List<List<string>>() { matrix };
List matrix\u List=newlist(){matrix};
然后根据需要将新矩阵添加到矩阵列表中。您对元素的访问将是
matrix\u list[list\u ix][row\u ix][column\u ix]
,其中ix是索引的缩写


现在,您得到的实际上是锯齿状数组,因此由您的代码强制执行矩阵宽度和长度。

如果您处理
char
元素,将
char
行表示为
字符串将更简单。因此,矩阵变成了字符串数组或字符串列表

List<string> matrix = new List<string>()
{
   "agfro",
   "t*hsu",
   "yjf.k"
}
列表矩阵=新列表()
{
“agfro”,
"徐国雄",,
“yjf.k”
}
宣布:

List<List<string>> matrix_list = new List<List<string>>() { matrix };
List matrix\u List=newlist(){matrix};
然后根据需要将新矩阵添加到矩阵列表中。您对元素的访问将是
matrix\u list[list\u ix][row\u ix][column\u ix]
,其中ix是索引的缩写


现在,您得到的是锯齿状数组,因此由您的代码强制执行矩阵的宽度和长度。

List arrayOfMatrix=new List()
,然后
arrayOfMatrix.Add(matrix)
List arrayOfMatrix=new List()
,然后
arrayOfMatrix.Add(matrix)
非常有用。我接受你的答案,因为它更完整!谢谢,非常有用。我接受你的答案,因为它更完整!