【问题标题】:Divide array into N chunks将数组分成 N 个块
【发布时间】:2015-03-28 00:16:49
【问题描述】:

我有byte[],我想把它分成几个部分,我正在使用这个解决方案:

public IEnumerable<IEnumerable<byte>> Chunk(byte[] list, int chunkSize)
        {
            int i = 0;
            var chunks = from name in list
                         group name by i++ / chunkSize into part
                         select part.AsEnumerable();
            return chunks;
        }

例如,我有 Array,大小为 880 字节,我这样调用:Chunk(MyArray, 3) 所以这将我的Array 分成几块,最多 3 个字节,而我想将我的Array 分成 3 块。 我的功能需要改变什么?

【问题讨论】:

  • How to split a byte array 的可能重复项
  • 假设数组中有四个项目,只是为了让示例变小。说{A, B, C, D}。你想要的解决方案是什么? {A, B}, {C}, {D}{A}, {B}, {C, D} 或正如 Tim Schmelter 的解决方案所建议的那样,{A, D}, {B}, {C} 都是可能的。您未充分说明您的问题。

标签: c# linq data-structures


【解决方案1】:

使用% 而不是/

 var chunks = from name in list
     group name by i++ % chunkSize into part
     select part.AsEnumerable();

【讨论】:

  • 假设项目是 A、B、C、D。这使得组 {A、D}、{B}、{C}。这真的是 OP 想要的吗?
猜你喜欢
  • 2012-01-01
  • 2021-09-19
  • 2021-10-05
  • 2013-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多