2011-08-04 40 views
1

我有ObservableCollection 100個記錄。如何拆分ObservableCollection

現在我想分割10個新集合中的每個有10個記錄的集合。

它意味着1個集合= 100個記錄 (10採集= 10個記錄)= 1個集合

任何幫助將apricited。

回答

1

使用LINQ

var collection=new ObservableCollection<int>(Enumerable.Range(1,100)); 
collection.Aggregate(new ObservableCollection<ObservableCollection<int>>(), 
    (x,i)=>{ 
    if (!x.Any() || x.Last().Count()==10) x.Add(new ObservableCollection<int>()); 
    x.Last().Add(i); 
    return x; 
    } 
); 

ObservableCollection<ObservableCollection<T>> Split(ObservableCollection<T> collection,int splitBy=10) { 

    var result=collection 
      .Select((x,i)=>new {index=i,item=x}) 
      .GroupBy(x=>x.index/splitBy,x=>x.item) 
      .Select(g=>new ObservableCollection<T>(g)); 
    return new ObservableCollection<ObservableCollection<T>(result); 
} 
+0

非常感謝鮑勃。這是工作。 –