c#将byte[]中指定的长度转移到新的byte[]
时间: 2024-10-09 18:06:45 浏览: 26
在 C# 中,如果你有一个 `byte[]` 并想从它里面提取特定长度的数据并复制到一个新的 `byte[]` 中,你可以使用 Array.Copy 或者直接使用 Linq 的 Take 方法。以下是两种方法的示例:
**使用 Array.Copy()**
```csharp
byte[] sourceArray = ...; // 输入的 byte[]数组
int lengthToCopy = ...; // 要复制的字节数
byte[] newArray = new byte[lengthToCopy];
Array.Copy(sourceArray, 0, newArray, 0, lengthToCopy);
```
这段代码会创建一个新的 `byte[]`,然后从 `sourceArray` 开始,复制指定长度的数据到新数组。
**使用 LINQ 的 Take() 方法**
```csharp
byte[] sourceArray = ...;
int lengthToCopy = ...;
byte[] newArray = sourceArray.Take(lengthToCopy).ToArray();
```
这里直接使用了 Linq 的 Take 方法,它会返回一个新序列,包含源序列中指定数量的元素。然后调用 ToArray() 将其转换为 `byte[]`。
这两种方法都能达到目的,选择哪种取决于你的个人偏好以及对性能的需求(对于大规模数据,通常推荐使用 `Array.Copy()` 因为它是底层操作,效率更高)。
阅读全文