gpt4 book ai didi

c# - ArraySegment 类有什么用?

转载 作者:IT王子 更新时间:2023-10-29 03:38:15 29 4
gpt4 key购买 nike

我刚刚遇到 ArraySegment<byte>在子类化 MessageEncoder 时键入类。

我现在明白它是给定数组的一段,有一个偏移量,不可枚举,也没有索引器,但我仍然不明白它的用法。有人可以举例说明吗?

最佳答案

ArraySegment<T>.NET 4.5 中变得更加有用+ 和 .NET Core因为它现在实现了:

  • IList<T>
  • ICollection<T>
  • IEnumerable<T>
  • IEnumerable
  • IReadOnlyList<T>
  • IReadOnlyCollection<T>

相对于 .NET 4 version它没有实现任何接口(interface)。

类(class)现在可以参与 LINQ 的精彩世界,因此我们可以执行常见的 LINQ 操作,例如查询内容、在不影响原始数组的情况下反转内容、获取第一项等:

var array = new byte[] { 5, 8, 9, 20, 70, 44, 2, 4 };
array.Dump();
var segment = new ArraySegment<byte>(array, 2, 3);
segment.Dump(); // output: 9, 20, 70
segment.Reverse().Dump(); // output 70, 20, 9
segment.Any(s => s == 99).Dump(); // output false
segment.First().Dump(); // output 9
array.Dump(); // no change

关于c# - ArraySegment<T> 类有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4600024/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com