C# list<byte> 去除前面重复字符
时间: 2023-12-08 19:06:05 浏览: 27
你可以使用 LINQ 库中的 SkipWhile 方法来去除列表中前面的重复字符。具体来说,你可以编写以下代码:
```csharp
List<byte> byteList = new List<byte> { 0x00, 0x00, 0x00, 0x01, 0x02, 0x03 };
byteList = byteList.SkipWhile(b => b == byteList[0]).ToList();
```
在这个例子中,我们创建了一个 List<byte>,其中包含一些重复的 0x00 字节和一些其他字节。然后,我们使用 SkipWhile 方法来跳过列表中前面的重复字节。SkipWhile 方法将返回一个 IEnumerable<T>,其中包含从第一个不满足谓词的元素开始的所有元素。我们将其转换为 List<byte>,以便我们可以像以前一样操作它。在此示例中,SkipWhile 方法将返回一个包含 0x01、0x02 和 0x03 的 IEnumerable<byte>,然后我们将其转换为 List<byte>。现在,byteList 中的前面重复字符已经被去除了。
相关问题
C# List<Byte> 删除前面的字符
如果你想从 `List<byte>` 中删除前面的 `n` 个元素,可以使用 `RemoveRange` 方法。下面是一个示例代码:
```csharp
List<byte> byteList = new List<byte>() { 65, 66, 67, 68, 69 };
int n = 3;
byteList.RemoveRange(0, n);
```
在上面的代码中,`byteList` 是包含字节的列表,`n` 是要删除的元素数。`RemoveRange` 方法的第一个参数指定要删除的起始索引,第二个参数指定要删除的元素数。在本例中,`RemoveRange(0, n)` 将删除 `byteList` 中的前 `n` 个元素,即 `65, 66, 67`。
注意:在使用 `RemoveRange` 时,请确保列表中有足够的元素以避免抛出 `ArgumentOutOfRangeException` 异常。
C# List<Byte> 修改最后一个字符
如果你想修改 `List<byte>` 中的最后一个元素,可以使用 `Count` 属性获取元素数量,然后使用索引访问最后一个元素。下面是一个示例代码:
```csharp
List<byte> byteList = new List<byte>() { 65, 66, 67, 68, 69 };
byteList[byteList.Count - 1] = 90;
```
在上面的代码中,`byteList` 是包含字节的列表。`byteList.Count` 返回列表中的元素数量,`byteList.Count - 1` 返回最后一个元素的索引。通过将索引 `byteList.Count - 1` 传递给 `byteList`,可以访问和修改最后一个元素。在本例中,将最后一个元素的值从 `69` 修改为 `90`。
注意:在使用索引访问 `List<byte>` 中的元素时,请确保列表不为空以避免抛出 `ArgumentOutOfRangeException` 异常。