[英]Parsing text file containing hierarchical items using linq
我正在重写一些代码,并尽一切可能尝试使用Linq。 我现在的问题是一个简单的文件导入功能。
该文件基本上如下所示:
A1
B1|1882
C1|7315808907578
B9
B1|1883
C1|4025595431639
C1|8717734091786
C1|8717734091809
C1|8717734098280
C1|8717795041874
C1|8717795060998
C1|8717795108973
B9
B1|1884
C1|4025595732071
C1|7315808887184
C1|8717734001983
B9
A9
现有代码如下所示:
line = reader.ReadLine();
string itemNo = "";
List<AltItems> list = new List<AltItems>();
while (line != null) {
posts = line.Split(postSep);
if (posts.Length == 0) { }
else if (posts[0].Equals("A1")) { }
else if (posts[0].Equals("B1"))
itemNo = posts[1];
else if (posts[0].Equals("C1")) {
string altItemNo = posts[1];
list.Add(new AltItems() { ItemNo = itemNo, AltItemNo = altItemNo });
}
line = reader.ReadLine();
}
等效的Linq查询是什么样的? 关于使用Linq重写此代码的性能损失有什么想法? 我还具有多个层次结构级别的文件,其中需要来自第一级项目的数据来构建第三级项目...
我会同意艾哈迈德·伊利亚斯。 用LINQ重写所有内容并不意味着它将更快地工作。
特别是,对于字符串解析,您应该知道LINQ不支持它。 如果您认为LINQ是一种以多种方式针对多种数据源的查询语言 ,则这是绝对合理的。 有很多方法可以做到,但是它们总是太间接了,我并不特别喜欢它们。 其中之一就是使用Scott Guthry的DynamicLinq库,这是它在此处建议的方式。
请注意,我仅向您展示一种使用LINQ进行字符串解析的方法。 这并不意味着我建议使用LINQ替换条件代码。
希望我能帮上忙!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.