【发布时间】:2016-05-15 00:01:31
【问题描述】:
我有一个字符串,在交替的行中有两种不同类型的数据(即两行记录一个记录)。我只想选择第二个(即偶数行)长度小于 1000 的记录。
我已经尝试过了,但结果是只选择了偶数行并丢弃了奇数行:
var lessthan1000Length = recordsFile.Where((src, index) => src.Length<1000 && index%2 != 0);
来自 recordsFile 的样本数据
2012-12-04 | 10:45 AM | Lahore
Added H2SO4 in the solution. Kept it in the lab temperature for 10 minutes
2012-12-04 | 10:55 AM | Lahore
Observed the pH of the solution.
2012-12-04 | 11:20 AM | Lahore
Neutralized the solution to maintain the pH in 6-8 range
感谢您的指导。
P.S:请注意,结果需要以List<string> 的形式提供,因为我们必须从中创建一个新数据集。
【问题讨论】:
-
所以改用
index%2 != 0?它从第 0 个开始,而不是第 1 个(从零开始的索引)。 -
@JeppeStigNielsen 使用
!=或`==',这并不重要,因为它开始分别只选择偶数行,奇数行。我想要记录的两行。请注意,奇数行和偶数行合并形成一个记录。例如,第 353 行和第 354 行一起构成一条记录。我无法从中选择任何一行 -
样本数据似乎每条记录使用三行(每三行记录一个空行)。这是正确的还是你刚刚发布的?
-
@Enigmativity 对不起!它不是 3 行。我就是这样发的。
-
啊,我没有立即理解您想要将条目“配对”以使前两个条目放在一起,依此类推。它让我想起了Split an
IEnumerable<T>into fixed-sized chunks (return anIEnumerable<IEnumerable<T>>where the inner sequences are of fixed length) duplicate 之类的线程。然而,当我们只想要长度为 2(对)的“块”时,它可能会更简单。