как разделить ObservableCollection - PullRequest
1 голос
/ 04 августа 2011

У меня есть ObservableCollection с 100 записями.

теперь я хочу разделить эту коллекцию на 10 новых коллекций, каждая из которых имеет 10 записей.

это означает 1 коллекция = 100 записей (10 коллекция =10 записей) = 1 коллекция

будет оказана помощь в любой помощи.

1 Ответ

1 голос
/ 04 августа 2011

Используя 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);
}
...