0
我有一個未知的大小數組,我想把它分成小大小的數組。使用linq將數組拆分爲更小的數組?
例如733項目數組將成爲7 100個項目數組和33個項目數組的列表。
List<List<T>> Split(List<T> list, uint sublistsize)
我可以寫一些代碼來做到這一點,但有什麼內置的東西?
我有一個未知的大小數組,我想把它分成小大小的數組。使用linq將數組拆分爲更小的數組?
例如733項目數組將成爲7 100個項目數組和33個項目數組的列表。
List<List<T>> Split(List<T> list, uint sublistsize)
我可以寫一些代碼來做到這一點,但有什麼內置的東西?
static List<List<T>> Split<T>(IEnumerable<T> list, int sublistsize)
{
return list.Select((i, idx) => new { Item = i, Index = idx })
.GroupBy(x => x.Index/sublistsize)
.Select(g => g.Select(x => x.Item).ToList())
.ToList();
}
另外,請注意列表與數組不同(但相似)。 –
查看http://stackoverflow.com/questions/438188/split-a-collection-into-n-parts-with-linq –
我在想[這個答案](http://stackoverflow.com/a/6362642/ 265419)從建議的副本。 –