c#
  • text
  • 2013-10-26 121 views 0 likes 
    0

    我想從這個一行代碼爲:讀取其中文件包含多行

      var data = File 
         .ReadLines("itemdata.txt") 
         .SelectMany(x => x.Split('\t')) 
         .Select(x => x.Split('=')) 
         .Where(x => x.Length > 1) 
         .ToDictionary(x => x[0].Trim(), x => x[1]); 
    

    從包含多個行與文字相同的文本文件。例如:etcitem = armor在第一行,etcitem =在第二行的武器,並且只想從一個單獨讀取。應該從第一行開始:textsearch.Text = data["etcitem"]; posbile怎麼樣? 謝謝!

    +0

    也許ToLookup會更好 - 我假設你得到一個錯誤創建字典由於非唯一鍵。雖然我不太清楚你是什麼意思'只從一個人閱讀'。 – Baldrick

    +0

    @Baldrick是的,我確實得到了那個錯誤。你能在我的來源中展示嗎? – user2828891

    +0

    你想只返回2個結果中的一個嗎?或者你想讓他們都回來? – Baldrick

    回答

    0

    您可以選擇只是。取第一行()如下:

    var data = File 
        .ReadLines("itemdata.txt") 
        .Where(x => x.Contains("5624")) 
        .Take(1) 
        .SelectMany(x => x.Split('\t')) 
        .Select(x => x.Split('=')) 
        .Where(x => x.Length > 1) 
        .ToDictionary(x => x[0].Trim(), x => x[1]); 
    

    ,如果你需要跳過任何行也可以使用.Skip()。

    +0

    這隻需要第一行,但如果我使用跳過它着陸到指定的行,並注意我用指定的文本搜索。下面是例如:item_begin \t \t武器5623 etcitem = armoris第一線和第二被item_begin \t \t武器5624 etcitem =武器。我搜索通過5624 – user2828891

    +0

    我不完全跟着你,但如果你需要搜索一個特定的行,你可以使用。選擇.ReadLines之間(X => x.Contains(「5624」)),()和。取()。 – wdosanjos

    +0

    你可以把它放在你的代碼中嗎?因爲通過返回錯誤。而且,這是在特定路線上進行搜索的理想之選。 – user2828891

    相關問題