Есть ли способ, что я могу сделатьArray Clone bytes 10-40?
var splice = byteArray.Clone(offset, length);
Есть ли способ, что я могу сделатьArray Clone bytes 10-40?
var splice = byteArray.Clone(offset, length);
Вы можете скопировать байты,
byte[] splice = new byte[length];
Array.Copy(byteArray,offset,splice,0,length);
Если это возможность использовать Linq:
var splice = byteArray.Skip(offset).Take(length).ToArray();
обязательное LINQ решение:
var splice = byteArray.Skip(offset)
.Take(length)
.ToArray();
Если вы обнаружите, что делаете это во многих местах: напишите помощника.
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;
}
}
(Это будет работать для любого типа одномерного массива.)