簡體   English   中英

將文本文件拆分為2D數組

[英]Splitting text file into 2D array

這是我要拆分為2D數組的文本文件

"YHOO",36.86,21,13873900,37.00 "GOOG",684.11,1114,1821650,686.72 "MSFT",50.54,3993,31910300,50.65 "AAPL",94.40,28201,39817000,94.26

這是我已經實現的代碼,但是無法正常工作

 String input = File.ReadAllText(@"..\..\Data\stockInfo.txt");

        int i = 0, j = 0;
        string[,] result = new string[3, 5];
        foreach (var row in input.Split('\n'))
        {
            j = 0;
            foreach (var col in row.Trim().Split(','))
            {
                result[i, j] = string.Parse(col.Trim());
                j++;
            }
            i++;
        }

鋸齒狀的數組String[][] (數組的數組)通常比二維的String[,]更靈活:

  string[][] result = File
    .ReadLines(@"..\..\Data\stockInfo.txt")
    .Select(line => line.Split(','))
    .ToArray();

如果您堅持使用2D數組 ,則必須放置效率較低的代碼

  string[] lines = File.ReadAllLines(@"..\..\Data\stockInfo.txt");

  string[,] result = null;

  for (int i = 0; i < lines.Count; ++i) { 
    string[] items = lines.Split(',');

    if (null == result)
      result = new string[lines.Count, items.Length];

    for (int j = 0; j < items.Length; ++j) 
      result[i, j] = items[j];
  }

數組大小錯誤。 另外,您不需要string.Parse,因為Split的輸出是IEnumerable的字符串

int i = 0, j = 0;
string[,] result = new string[4, 5];
foreach (var row in input.Split('\n'))
{
    j = 0;
    foreach (var col in row.Trim().Split(','))
    {
        result[i, j] = col.Trim();
        j++;
    }
    i++;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM