1

我有一个文本文件,其中包含一些“块”格式的数据:

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 从文本文件中查询数据行,但从来没有像上面那样查询数据“块”。感谢您的输入。

4

1 回答 1

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];
    });
于 2012-10-17T16:39:43.310 回答