所以我有一个文件,我想把它分成两组。下面我有一段我一直在研究的代码:
string path = "TextFile";
string lines[] = File.ReadAllLines(path);
int count = lines.Length;
List<string> groupAlpha = lines.Take(7678).ToList();
List<string> groupBeta = lines.Skip(7678).Take(5292).ToList();
数字代表行号。我的问题是它使用行号将它们组成组。如果我将来使用不同的文件,可能不会被这些确切的数字分开。我知道每个都以:
开头***********BEGIN PROCESSING ALPHA PNRS***********
并以:
结束************END PROCESSING ALPHA PNRS************
Beta与alpha相同,但在ALPHA所在的位置插入了BETA。
我的问题是,是否有一种语法方式,它与我上面的相似,但使用正则表达式来解决我将这些问题分成两组列表的问题?如果有可能请您以答案的形式告诉我而不是评论?谢谢!
答案 0 :(得分:0)
Linq完全有能力这样做,使用正则表达式会让我觉得更难。
string alphaStart = "***********BEGIN PROCESSING ALPHA PNRS***********";
string alphaEnd = "************END PROCESSING ALPHA PNRS************";
string betaStart = "***********BEGIN PROCESSING BETA PNRS***********";
string betaEnd = "************END PROCESSING BETA PNRS************";
List<string> groupAlpha = (lines.SkipWhile(s => s != alphaStart).Skip(1).TakeWhile(s => s != alphaEnd)).ToList();
List<string> groupBeta = (lines.SkipWhile(s => s != betaStart).Skip(1).TakeWhile(s => s != betaEnd)).ToList();