请教一个集合 ChunkBySize 的算法

1 天前
 ne6rd

假设存储端有一个 2MB 的文件大小限制。 内存中有一个集合,IEnumerable<T>, 想要实现一个 ChunkBySzie 的方法,maxSzie 假设为 1.8MB ,把集合分成多个小组,每个都不超过 maxSize,同时又保证小组数量小。 集合的范围可能是 100~1M

目前想到两种思路:

  1. 估算,取前 n 个 item ,计算平均 size ,然后估算,但是不确定
  2. 枚举,计算每个 item 的 size ,最准,但是消耗性能

语言是 C#,大家有啥建议吗?

341 次点击
所在节点    算法
1 条回复
newaccount
1 天前
超过限制会报错不?
会的话
估算插入,如果抛错就拆成两个再插入

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1168074

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX