根据你提供的代码,我猜测你想在数据长度超过 4096 字节时解析数据,并将解析后的数据添加到一个 List 对象中。如果是这样,可以使用以下代码:
```csharp
byte[] bin = SunnyPublic.Tcp_取数据(数据指针, 数据长度);
if (bin.Length >= 4096)
{
BuffArray buff = new BuffArray();
buff.WriteBytes(bin);
buff.Seek(0, SeekOrigin.Begin);
//4字节 INT length[包体]长度
var len = buff.ReadInt32(true);
var cmd = buff.ReadInt32(true);
var 包序号 = buff.ReadInt32(true);
var ret = buff.ReadInt32(true);
var unk1 = buff.ReadInt32(true);
var data = buff.ReadBytes(len - 20);
List list = new List();
list.AddRange(BitConverter.GetBytes(len));
list.AddRange(BitConverter.GetBytes(cmd));
list.AddRange(BitConverter.GetBytes(包序号));
list.AddRange(BitConverter.GetBytes(ret));
list.AddRange(BitConverter.GetBytes(unk1));
list.AddRange(data);
tmp._data.Add(new data { 方法 = "收包", 数据 = GameUtils.ByteToHexStr(list.ToArray(), list.Count), byteData = list.ToArray(), 长度 = list.Count });
}
else
{
tmp._data.Add(new data { 方法 = "收包", 数据 = GameUtils.ByteToHexStr(bin, bin.Length), byteData = bin, 长度 = bin.Length });
}
```
这里使用了 if-else 语句来判断数据长度是否超过 4096 字节。如果数据长度超过 4096 字节,则使用 BuffArray 类来解析数据,并将解析后的数据添加到一个 List 对象中。然后,将该对象添加到 tmp._data 列表中。
注意,这里我假设你想要将解析后的数据重新组成一个包,并将其添加到 tmp._data 列表中。如果你需要根据具体情况进行修改,请自行调整代码。