簡體   English   中英

C#將文本文件拆分為2維字符串數組

[英]C# split textfile into a 2 dimensional string array

我有一個看起來像這樣的文本文件:

John,Gauthier,blue,May
Henry,Ford,Red,June
James,Bond,Orange,December

我想把它拆分成一個二維字符串數組,這樣我就可以將每一行分開,然后分隔每個單詞。 例如:

mystring[0][0] = "John"
mystring[1][3] = "June"
mystring[2][2] = "Orange"

這就是我現在所做的:

string[] words = new string [100];
System.IO.StreamReader myfile = new System.IO.StreamReader("c:\\myfile.csv");

while (fichier.Peek() != -1)
{
  i++;
  words = myfile.ReadLine().Split(',');

}

我被卡住了。 我能夠將它分成一維字符串數組,但不能分成二維字符串數組。 我想我需要拆分兩次; 第一次使用'\\ n',第二次使用','然后將這兩者放在一起。

這實際上是一個單行:

File.ReadLines("myfilename.txt").Select(s=>s.Split(',')).ToArray()

由於這是一個初學者的問題,這是正在發生的事情:

File.ReadLines(filename)返回文本文件中所有行的集合

.Select是一個帶函數的擴展方法

s => s.Split(',')是函數,它用所有逗號分割字符串s並返回一個字符串數組。

.ToArray()獲取由.Select創建的字符串數組的集合,並從中創建一個數組,因此您將獲得數組數組。

嘗試這個

   var str = File.ReadAllText("myfile.csv");


 var arr = str.Split(new string[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries);

   var multi = arr.Select(x => x.Split(',')).ToArray();

嘗試:

var First = new string [100];
var Sec = new string [100];
System.IO.StreamReader myfile = new System.IO.StreamReader("c:\\myfile.csv");

while (fichier.Peek() != -1)
{
  i++;
  var buff = myfile.ReadLine().Split(',');
  First[i] = buff[0];
  Sec[i] = buff[1];
}

其他想法,使用XML serilizer來破壞你的洞對象。 兩個擴展:

    public static void SaveAsXML(this Object A, string FileName)
    {
        var serializer = new XmlSerializer(A.GetType());
        using (var textWriter = new StreamWriter(FileName))
        {
            serializer.Serialize(textWriter, A);
            textWriter.Close();
        }
    }

    public static void LoadFromXML(this Object A, string FileName)
    {
        if (File.Exists(FileName))
        {
            using (TextReader textReader = new StreamReader(FileName))
            {
                XmlSerializer deserializer = new XmlSerializer(A.GetType());
                A = (deserializer.Deserialize(textReader));
            }
        }
    }

添加比任何靜態類和調用:

YourSaveClassWhitchContainsYourArray.SaveAsXML("Datastore.xml");

要么

YourSaveClassWhitchContainsYourArray.LoadFromXML("Datastore.xml");

暫無
暫無

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

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