我閱讀了這個問題:Split List into Sublists with LINQ但它不幫我解決以下問題。通過分隔符將列表拆分爲子列表而不是通過C#中的索引
我有以下列表
18
0
abcde
678
-----
23
1
abcde
-----
66
4
3rwer
1
another item
我如何通過-----
分離拆分此列表分成子列表?
感謝
我閱讀了這個問題:Split List into Sublists with LINQ但它不幫我解決以下問題。通過分隔符將列表拆分爲子列表而不是通過C#中的索引
我有以下列表
18
0
abcde
678
-----
23
1
abcde
-----
66
4
3rwer
1
another item
我如何通過-----
分離拆分此列表分成子列表?
感謝
我不知道現有的運營商在LINQ這樣對對象本身,更多的MoreLINQ project有Split
方法,所以你可以使用:
var sections = originalList.Split("-----");
一個返回IEnumerable<IEnumerable<string>>
- 如果你需要一個列表的列表,你可以使用:
var sections = originalList.Split("-----")
.Select(section => section.ToList())
.ToList();
MoreLINQ有NuGet package,你可能希望用於安裝。
['Split'](https://code.google.com/p/morelinq/source/browse/MoreLinq/Split.cs)在第179行有一個小錯誤:'if(source == null)拋出新的ArgumentNullException(「separatorFunc」);'可能應該是'separatorFunc == null'。 – dbc 2014-09-23 16:33:08
@dbc:是的,你說得對。我會解決這個問題。不過,它適用於其他情況:) – 2014-09-23 16:36:25
你期望回收多少物品,三個或四個? – dasblinkenlight 2014-09-23 16:17:16
這是可變的......這就是爲什麼我把'-----'分隔符。現在我希望有三個子列表。 – 2014-09-23 16:17:53
@SnakeEyes:關鍵是你最後有一個分隔符......你想讓最後一個返回的元素成爲一個空列表嗎? – 2014-09-23 16:18:14