【问题标题】:Assigning a 1D array in a 2D array in C#在 C# 的二维数组中分配一维数组
【发布时间】:2016-11-08 04:47:11
【问题描述】:

相当愚蠢的问题(如果你不知道的话,我对 C# 有点陌生;P)。具体来说,我正在尝试将一整行(一维字符串数组)分配给 C# 中的二维字符串数组。 C++ 中的等价物(如果有帮助的话)将是

vector< vector<string> > 2dArray;
vector<string> 1dArray({"Aa","Bb","Cc"});
for (int i = 0; i < 2; i++) {
   2dArray.push_back(1dArray);
}

我不认为这有什么区别,但一维数组实际上是使用 split 函数从控制台读取的一行,我将其视为一维字符串数组:Console.ReadLine().Split()

我意识到我可以诉诸于单独分配元素,但如果存在让我逐行分配的解决方案,那么我想学习使用那个。

【问题讨论】:

  • 你想让你的二维数组的每一行都有相同的值吗?

标签: c# arrays multidimensional-array


【解决方案1】:

您应该在 .NET 框架中调查 Generics。特别是List&lt;T&gt; 其中T 在您的情况下是string。另外你可以做一个Dictionary&lt;&gt;

var list2D = new List<List<string>>();
var list1D = new List<string> { "Aa", "Bb", "Cc"};
for(var i = 0; i< 2; i++) {
    list2D.Add(list1D);
}

【讨论】:

    【解决方案2】:

    第一个数组可以用一个简单的数组来表示:

    string[] array1 = { "Aa","Bb","Cc" };
    

    第二个可以用各种generic collections表示,根据你的需要,在这个简单的例子中可以是一个List。

    List <string[]> list1 = new List<string[]>();
    
    list1.Add(array1);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-29
      • 1970-01-01
      • 2013-11-23
      • 2015-06-12
      • 2020-09-05
      相关资源
      最近更新 更多