数组克隆字节10-40?

时间:2010-07-12 12:23:44

标签: c# .net

我有办法吗

var splice = byteArray.Clone(offset, length);

4 个答案:

答案 0 :(得分:10)

您可以复制字节

byte[] splice = new byte[length];
Array.Copy(byteArray,offset,splice,0,length);

答案 1 :(得分:6)

如果是使用Linq的选项:

var splice = byteArray.Skip(offset).Take(length).ToArray();

答案 2 :(得分:3)

强制性LINQ解决方案:

var splice = byteArray.Skip(offset)
                      .Take(length)
                      .ToArray();

答案 3 :(得分:2)

如果你发现自己在很多地方这样做:写一个帮手。

public static class ArrayExtensions {
  public static Array ClonePart(this Array input, int offset, int length) {
    if (input == null) throw new ArgumentNullException("input");
    if (offset <= 0 || offset > input.Length) throw new ArgumentOutOfRangeException("offset");
    if (length <= 0 || length > input.Length || length+offset > input.Length)
      throw new ArgumentOutOfRangeException("length");

    var output = Array.CreateInstance(input.GetType().GetElementType(), length);
    Array.Copy(input, offset, output, 0, length);
    return output;
  }
}

(这适用于任何类型的一维数组。)