在 NetStandard 2 中反转 Span
Reverse a Span in NetStandard 2
我需要反转 Span<Char>
,如果我使用 NetStandard 2.1 会很容易。
我可以使用 MemoryExtensions.Reverse(Span),但不幸的是,我使用的版本不支持它。
我试图从 repository 复制代码,但它使用了一些 NetStandard 2.0 中不存在的语言功能。
我不介意使用优化程度较低的实现,因为它在我的代码中不常使用。不过,我无法将它转换为字符串然后反转它,因为我无法在此实现中处理垃圾收集触发器。
如何在不转换为字符串或升级 NetStandard 版本的情况下反转 Span<Char>
?
如果超级高效不是关键,为什么不用简单的 for 循环?
Span<int> x = new[] { 1, 2, 3, 4 }.AsSpan();
for (int i = 0, j = x.Length - 1; i < j; i++, j--)
{
var temp = x[i];
x[i] = x[j];
x[j] = temp;
}
安装最新的 System.Memory
NuGet 包,MemoryExtensions.Reverse
方法将可供您使用。
我需要反转 Span<Char>
,如果我使用 NetStandard 2.1 会很容易。
我可以使用 MemoryExtensions.Reverse(Span),但不幸的是,我使用的版本不支持它。
我试图从 repository 复制代码,但它使用了一些 NetStandard 2.0 中不存在的语言功能。
我不介意使用优化程度较低的实现,因为它在我的代码中不常使用。不过,我无法将它转换为字符串然后反转它,因为我无法在此实现中处理垃圾收集触发器。
如何在不转换为字符串或升级 NetStandard 版本的情况下反转 Span<Char>
?
如果超级高效不是关键,为什么不用简单的 for 循环?
Span<int> x = new[] { 1, 2, 3, 4 }.AsSpan();
for (int i = 0, j = x.Length - 1; i < j; i++, j--)
{
var temp = x[i];
x[i] = x[j];
x[j] = temp;
}
安装最新的 System.Memory
NuGet 包,MemoryExtensions.Reverse
方法将可供您使用。