如何拆分 ObservableCollection

发布于 2024-11-28 05:35:07 字数 157 浏览 0 评论 0原文

我有 ObservableCollection 有 100 条记录。

现在我想将该集合拆分为 10 个新集合,每个新集合有 10 条记录。

这意味着 1 个集合 = 100 条记录 (10 收藏 = 10 条记录) = 1 收藏

任何帮助都将受到重视。

i have ObservableCollection with 100 records.

now i want to get split that collection in 10 new collection each having 10 records.

it means 1 collection = 100 records
(10 collection = 10 records) = 1 collection

any help will be apricited.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故事和酒 2024-12-05 05:35:07

使用 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);
}

Using 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;
  }
);

or

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);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文