我有办法吗
var splice = byteArray.Clone(offset, length);
答案 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;
}
}
(这适用于任何类型的一维数组。)