私は次のようなテキストファイルを持っています(何千行もあります):
Header
AGROUP1
ADATA1|0000
ADATA2|0001
ADATA3|0002
D0000|TNE
D0001|TNE
D0002|TNE
AGROUP2
ADATA1|0000
ADATA2|0001
ADATA3|0002
D0000|TNE
D0001|TNE
D0002|TNE
AGROUP3
ADATA1|0000
ADATA2|0001
ADATA3|0002
D0000|TNE
D0001|TNE
D0002|TNE
実際、数千行を超えるコードが含まれています。
グループに基づいてデータを読み取る必要があります。たとえば、メソッドでは次のようになります。
public void ReadData(string strGroup)
{
if(strGroup == "AGROUP2)
//Read from the text file starting from line "AGROUP2" to "AGROUP3"(i.e lines under AGROUP2)
}
私が試したことは
public void ReadData(string strGroup)
{
bool start = false;
while ((line = reader.ReadLine()) != null)
{
if (line == strGroup && line.Length == 5)
start = true;
else if (line.Length == 5)
start = false;
if(start)
yield return line;
}
}
正常に動作しています。パフォーマンスの面では、テキストファイルが非常に巨大なファイルであるため、時間がかかります。メソッドのすべての行にif条件があります。
これを行うためのより良い方法はありますか?