1

私は以下を持っていますList<string>

List<string> RFD = new List<string>(File.ReadAllLines("FDIASNC"));

読み取っているファイルには次のものがあります。

000821031300000000080
001921031300000000080
004221031300000000080
008121031300000000080
009321031300000000080
011221031300000000080
012221031300000000080
0128200313010000330790000033
207721031300000000080

したがって、一致するものを見つけてこの行を選択する必要があります。たとえば、「0128」の行を手動で読み取りたい場合は、RFD [7]になりますが、その行を検索して、操作のために行を出力します。 .. 何か案が?

ありがとうございました。

編集

私が投稿したらそれを見つけました、私はばかげています...あなたの答えに感謝します、10分以内に私は正しいものとして1つを選択します:)

4

5 に答える 5

2

LINQを使用して以下を検索できます。

var line = File.ReadAllLines("FDIASNC")
               .FirstOrDefault(line => line.StartWith("0128"));

if (line != null)
{
    //Do something with this line
}

返品List<string>以降を作成する必要はありませんReadAllLinesIEnumerable<string>

ファイルが大きい場合は、ReadLinesすべての行をメモリにロードする代わりに、遅延実行を使用することを検討してください。

于 2013-03-25T11:30:53.787 に答える
1
 RFD.Where(r=>r.Contains("0128")).FirstOrDefault()
于 2013-03-25T11:31:01.543 に答える
1

基準に一致する1行だけを選択する場合は、FirstまたはSingleLINQ拡張メソッドを使用します。例えば:

string str = RFD.First(line => line.StartWith("0128"));

0128200313010000330790000033文字列を返します

于 2013-03-25T11:31:05.397 に答える
1

このようなもの?

using System.Linq;

// later in your program...

foreach (string match in RFD.Where(l => l.StartsWith("0128"))) {
    Console.WriteLine(match);
}
于 2013-03-25T11:31:13.900 に答える
1

これを試して:

string line = RFD.FirstOrDefault(line => line.StartsWith("0128"));

最初に0128の行がない場合、その行はnullです。

于 2013-03-25T11:33:47.423 に答える