我在這個格式的字符串陣列(每一行是在陣列中的狹槽):使用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