【发布时间】:2019-12-30 03:02:33
【问题描述】:
前段时间我在 stackoverflow 上找到了这段代码,但似乎再也找不到了。所有功劳归于作者。抱歉,我无法链接。
QUESTION? 一些 C# LINQ 大师能否逐步分解这个陈述,因为我很难理解它。它确实运作良好并且可以完成工作,但是如何?
要拆分的行
var line = $"13351.750815 26646.150876 6208.767863 26646.150876 1219.200000 914.400000 0.000000 1 \"Beam 1\" 0 1 1 1 0 1 1e8f59dd-142d-4a4d-81ff-f60f93f674b3";
var splitLineResult = line.Trim().Split('"')
.Select((element, index) => index % 2 == 0
? element.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
: new string[] { element })
.SelectMany(element => element).ToList();
LinqPad 中的语句结果
【问题讨论】:
-
老实说,人们已经解释了代码的作用,但它不需要做所有的体操。目标是从一长串中取出所有项目。我会简单地这样做:1)使用引号分割整个事物 2)使用空格分割第一部分 3)使用空格分割最后一部分 4)连接结果。简单的! Check it Out.