2013-03-28 42 views
0

我有一個未知的大小數組,我想把它分成小大小的數組。使用linq將數組拆分爲更小的數組?

例如733項目數組將成爲7 100個項目數組和33個項目數組的列表。

List<List<T>> Split(List<T> list, uint sublistsize) 

我可以寫一些代碼來做到這一點,但有什麼內置的東西?

+0

另外,請注意列表與數組不同(但相似)。 –

+0

查看http://stackoverflow.com/questions/438188/split-a-collection-into-n-parts-with-linq –

+0

我在想[這個答案](http://stackoverflow.com/a/6362642/ 265419)從建議的副本。 –

回答

0
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(); 
}