【发布时间】:2011-11-03 14:54:49
【问题描述】:
以下是我正在使用的 CSV 字符串。它实际上要大得多,但这足以显示一个模式。
请注意,我将这个 CSV 放在单独的行中只是为了方便地展示我的模式。
在 CSV 拆分后,字段的数量是可变的,具体取决于原始字符串的大小,即字符串的长度可变,这使得索引的数量可变
图案中的字母不一定都是P,可能是U、O或F
G9999999990001800002777107050,
G9999999990002777107HMNLAQKPRLLHRAQRWJ010,
1,
3,
29,
P,
6.74,
11.23,
07,
U,
5.25,
14.29,
08,
O,
6.89,
16.92,
07,
P,
5,
4,
我想选择第 5 个 (29) 和第 6 个 (P) 元素,然后错过 2 个元素,然后选择下一个元素 (07) 和 (P) 之后的一个元素,依此类推,直到我到达末尾字符串。
在这个例子中,我将 29 磷 07 磷 08 磷 07 P
有没有一种简单的方法可以做到这一点,我认为 LINQ 会提供一些东西
谢谢
【问题讨论】:
-
你没有说你为什么想要这些元素。我猜规则是'所有元素要么是
P,要么是P',但这只是一个猜测。如果第一个元素是P会发生什么? -
那是 CSV 吗?还是每个值都在新行上?注意:LINQ 并不是解决所有问题的灵丹妙药——如果数据如其所见,那么
File.ReadAllLines或StreamReader应该会有所帮助。 -
抱歉,它是一个 CSV,我认为将它放在一个新行上可能会更好地展示我的示例。如果您愿意,我可以将其改回 CSV
-
@Jon: 谢谢你,不错的选择;但是,为了说明这一点,应该发表评论。你会相应地编辑问题吗?
-
问题更新为粗体
标签: c# .net linq c#-4.0 .net-4.0