簡體   English   中英

從 C# 中沒有標題的制表符分隔文件中讀取文本數據

[英]Reading text data from tab delimited file without headers in C#

我想從 a.txt 文件中讀取文本數據,其中的數據是制表符分隔的。 我正在粘貼下面的示例數據。 [1]: https://i.stack.imgur.com/t9cPt.png

現在我想要的是將數據讀入一個沒有標題字符串類型列表

我目前有以下代碼:

            
            var sepList = new List<string>();

            // Read the file and display it line by line.
            using (var file = new StreamReader(docPath))
            {
                string line;
                while ((line = file.ReadLine()) != null)
                {
                    var delimiters = '\t';
                    var segments = line.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);

                    foreach (var segment in segments)
                    {
                        //Console.WriteLine(segment);
                        sepList.Add(segment);
                    }   
                }
            }

任何幫助將不勝感激:)[![在此處輸入圖片描述][1]][1]

我想要的是將數據讀入一個沒有標題的字符串類型列表。

添加file.ReadLine(); 在讀取文件之前,它將跳過 header 或文件的第一行。

試試這個:-

var sepList = new List<string>();


using (var file = new StreamReader(docPath))
{
    // Skip the first line (the header)
    file.ReadLine();

    string line;
    while ((line = file.ReadLine()) != null)
    {
        var delimiters = '\t';
        var segments = line.Split(
           delimiters, StringSplitOptions.RemoveEmptyEntries
        );

        foreach (var segment in segments)
        {
            // console.WriteLine(segment);
            sepList.Add(segment);
        }   
    }
}

你可以用一行得到你的結果。

var data = File.ReadLines(docPath)
               .Skip(1)
               .Select(x => x.Split(new char[] {'\t'},StringSplitOptions.RemoveEmptyEntries))
               .SelectMany(k => k);

首先,我們使用 File.ReadLines 枚舉文件中的行,創建一個序列,我們可以將其提供給以下命令。 然后我們跳過序列的第一行,對剩余的項目應用 Split 操作,得到另一個包含兩個或更多值的序列,我們可以將這些值作為單個項目添加到分配給數據變量的 IEnumerable 中。 當然 ToList 會將 IEnumerable 實體化為最終處理數據。

暫無
暫無

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

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