簡體   English   中英

C#解析字符串拆分

[英]C# parse string split

我有一個由兩列組成的文件,它們將存儲為一個Dictionary,其中第一列是鍵,第二列是值。 第二列由空格分隔,空格可以是任意數量的空格或制表符。

如何使用Split()函數將其存儲在我的Dictionary中?

        recipesFile = new StreamReader(recipesRes.Stream);
        char[] splitChars = {'\t', ' '};

        while (recipesFile.Peek() > 0)
        {
            string recipesLine = "";
            recipesLine = recipesFile.ReadLine();
            string[] recipesInLine = recipesLine.Split(splitChars);

            recipes.Add(recipesInLine[0], recipesInLine[1]);
        }

謝謝

recipesLine.Split(splitChars, StringSplitOptions.RemoveEmptyEntries);

您的代碼一般也可以縮短為

var myDictionary = File.ReadLines(myFileName)
    .Select(l => l.Split(new []{'\t', ' '}, StringSplitOptions.RemoveEmptyEntries))
    .ToDictionary(a => a[0], a => a[1]);

由於您的條目使用多個空格字符分隔,並且Split 單個字符,因此您需要刪除空條目。 為此目的,有一個單獨的String.Split重載

string[] recipesInLine = recipesLine.Split(splitChars, 
                                           StringSplitOptions.RemoveEmptyEntries);

首先,使用file.readlines方法。 然后你就可以使用linq了。 http://msdn.microsoft.com/en-us/library/dd383503.aspx

Jon Skeet和Marc Gravell都有很好的例子,可以在這里使用linq讀取文件, 在C#中逐行讀取文件。

然后使用ToDictionary - Yuriy的答案是一個很好的解決方案。

暫無
暫無

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

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