如何在 C# 中使用 Stream 对象处理 List<T> 类型的数据?
时间: 2025-02-24 11:40:01 浏览: 35
在C#中,Stream对象主要用于字节流操作,如文件读写、网络数据传输等,通常与内存无关。然而,如果你想要从List<T>这样的集合结构中逐个元素地读取或写入到Stream,你需要先将其转换为二进制序列,例如使用序列化。
1. **序列化**:
使用`BinaryFormatter`或`System.Text.Json`等库将List<T>序列化为字节数组,然后可以写入到Stream中:
```csharp
using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, yourList);
stream.Seek(0, SeekOrigin.Begin); // Move back to the start
// Now you can use stream for further operations or save it to a file.
}
```
2. **反序列化**:
当从Stream读取数据后,你可以反序列化回List<T>:
```csharp
using (var stream = File.OpenRead("yourfile.bin")) // Or use another source
{
BinaryFormatter formatter = new BinaryFormatter();
List<T> deserializedList = (List<T>)formatter.Deserialize(stream);
}
```
如果你需要保持原始的顺序和性能,一般会倾向于直接操作List<T>,而不是通过Stream,除非有特定的性能或并发需求。
阅读全文
相关推荐



