【问题标题】:How to implement string[] into string[] in C#?如何在 C# 中将 string[] 实现为 string[]?
【发布时间】:2019-09-29 04:01:00
【问题描述】:

我想将“string[] loadedText”实现为“string[] dataList”,但我不断收到错误消息“Cannot implicitly convert type 'string[]' to 'string'”。

string[] dataList = new string[1800];
StreamReader loadNewData = new StreamReader("podaciB.txt");
int i = 0;
while (i < 1800)
{
    string[] loadedData = loadNewData.ReadLine().Split(';');
    dataList[i] = loadedData;
    i++;
}

我需要 'dataList' 数组,该数组将包含 1800 个 'loadedData' 数组,其中包含 4 个字符串。

【问题讨论】:

  • 你的 loadedData 是一个字符串数组,dataList 也是。但是当您访问dataList[i] 时,您现在处于一个字符串中,编译器正在等待一个字符串来分配它。

标签: c# arrays string winforms streamreader


【解决方案1】:

loadNewData.ReadLine().Split(';'); 返回字符串数组,您将字符串数组存储到dataList[i] 中,即字符串数组的字符串元素。这就是您在问题中提到的错误背后的原因

如果您想将loadNewData.ReadLine().Split(';'); 存储到一个数组中,那么我建议您使用嵌套列表List&lt;List&lt;string&gt;&gt;

类似的,

List<List<string>> dataList = List<List<string>>();
StreamReader loadNewData = new StreamReader("podaciB.txt");
int i = 0;
while (i < 1800)
{
    var innerList = loadNewData.ReadLine().Split(';').ToList();
    dataList.Add(innerList);
    i++;
}

【讨论】:

    【解决方案2】:

    你需要的是jagged array:

    string[][] dataList = new string[1800][];
    

    【讨论】:

      【解决方案3】:

      您似乎需要一个字符串数组,例如string[][]

      你可以这样做:

      string[][] dataList = new string[1800][];
      StreamReader loadNewData = new StreamReader("podaciB.txt");
      int i = 0;
      while (i < 1800)
      {
          string[] loadedData = loadNewData.ReadLine().Split(';');
          dataList[i] = loadedData;
          i++;
      }
      

      【讨论】:

        【解决方案4】:

        当您拆分loadedNewData 时,您已经收到string[],因为Split() 函数返回string[]

        【讨论】:

        • 你能详细说明你的答案吗
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-29
        • 1970-01-01
        • 2012-12-30
        • 1970-01-01
        • 2015-11-17
        • 1970-01-01
        相关资源
        最近更新 更多