linqからtxtファイルにいくつかの問題があります。 txtファイルは、次の特定の構造を有する:C#ラムダからtxtファイル
================ 09.01.2017 [8:51:11] created by VBScript ================
....some text
============================= END =============================
================ 16.01.2017 [9:49:09] created by VBScript ================
....some text
============================= END =============================
================ 18.01.2017 [8:43:50] created by VBScript ================
....some text
============================= END =============================
etc
だから私は始まり、「=」で終わるし、その中にそのインデックス(位置)を選択し、そのファイルからすべての行を選択します。
まずステップ:私は開かれ、リストにconverteredました(それはリストで動作するように簡単です原因)
string filekvitErrorGroupsResource = Utils.ReadTextResource(resourceName, Assembly.GetExecutingAssembly());
string[] stringSeparators = {"\r\n"};
string[] lines = filekvitErrorGroupsResource.Split(stringSeparators, StringSplitOptions.None);
return new List<string>(lines);
第二ステップ:私は条件により一覧表示するには、簡単なラムダクエリを作成しようとしました:
var myQuery = lines.Where(l => l.StartsWith("=") && l.EndsWith("="))
.Select(l => new {idx = lines.IndexOf(l), body = l});
問題:その結果、私はユニークなインデックス(IDX)と文字列のリストを受け取ることを期待、代わりに私は、この受信しました:
「END」の行が一意ではないことがわかりますが、なぜですか?
Distinct()はどこですか? – Hakunamatata
Distinct()はここでは役に立ちません。(idx = 8)行のすべてのirepeatsを削除します – whizzzkey
毎回同じ文字列であるため一意ではありません。 Index ofは、文字列の最初の出現を検出します。 https://msdn.microsoft.com/en-us/library/5xkyx09y(v=vs.110).aspx – briantyler