我在这个格式的字符串阵列(每一行是在阵列中的狭槽):使用LINQ以提取出一个字符串数组的部分成一个新的集合
IT1
PID
价
参考
REF
IT1
PID
REF
IT1
PID
参考
REF
...
我想通过最后REF每个IT1提取到使用LINQ的新数组。新的结果将是IEnumerable<IEnumerable<string>>
。
使用上面的字符串槽数组示例,新的IEnumerable集合应该包含3个IEnumerable<string>
。
例如:
类1
IT1
PID
价
价
REF
端类1
类2
IT1
PID
REF
端类2
类3
IT1
PID
价
REF
端类3
...
通知所述阵列的一些部分具有1个REF,一些2 REF和一些3 REF。
如何使用LINQ从IT1中将每个节通过最后一个REF提取到IEnumerable<IEnumerable<string>>
的新集合中?
Psudo代码...
var result = arrayData.Select(s => s.StartsWith("IT1")
.GroupBy(...)
.Select(result => new {IT1 through last ref goes here})
.ToArray();
谢谢大家的帮助!
感谢@Jon这是工作。你是对的,我无法获得类或匿名类型,所以我编辑了我的原始问题,询问获取IEnumerable的IEnumerable字符串。当我到达阵列插槽中CCT阵列的插槽时,我确实需要停止分组。我怎样才能调整你的代码来停止并且不包含CCT或任何超过CCT的数组? CCT和项目中的项目不需要,可以被视为无效。谢谢您的帮助! – Frekster
您可以将@Jon代码从'g => g.ToArray()'更改为'g => g.TakeWhile(s => s!=“CCT”)ToArray()' – Wasp
@Frekster:Wasp的评论只是很好。 – Jon