我有一个文本文件,其中包含一些“块”格式的数据:
source : source location
filename : somefile.txt
vendor : somevendor
version : xx.xx.xxx
source : source location2
filename : somefile2.txt
vendor : somevendor2
version : yy.yy.yyy
我可以使用Linq来查询这些数据,如果是这样,你会怎么做呢?我已经使用linq多次查询来自文本文件的数据行,但从来没有像上面那样“阻塞”数据。感谢您的投入。
答案 0 :(得分:1)
是的,您可以使用LINQ,如果您有大文件,这种方法没有太多优化。以下是获取数据的方法:
var lines = File.ReadLines("C:\\text.txt")
.Where(line => !string.IsNullOrWhiteSpace(line))
.ToList();
for (int i = 0; i < lines.Count; i += 4)
{
var location = lines[i].Split(':')[1];
var fileName = lines[i + 1].Split(':')[1];
var vendor = lines[i + 2].Split(':')[1];
var version = lines[i + 3].Split(':')[1];
}
使用LINQ的版本:
var result = Enumerable.Range(0, lines.Count()/4).Select(i => new {
location = lines[4*i].Split(':')[1];
fileName = lines[4*i + 1].Split(':')[1];
vendor = lines[4*i + 2].Split(':')[1];
version = lines[4*i + 3].Split(':')[1];
});