gpt4 book ai didi

c# - 对数组内的范围进行排序以进行计数而不是逻辑排序

转载 作者:太空宇宙 更新时间:2023-11-03 13:02:34 25 4
gpt4 key购买 nike

给定一个包含 10 个成员的数组,其中 9 个是整数,您如何对索引范围为 4 到 9 的元素进行排序?

例如:

输入:[输入向量,2,8,2084,33,49,42,8,21,37]

输出:[33,49,42,8,21,37]

Array.Sort(InputArray,4,6) 生成 [21,33,37,42,49,8],这是一种逻辑排序。然而,我们需要这个范围以简单的升序排列:[8,21,33,37,42,49]

我们怎样才能做到这一点?

最佳答案

您数组中的数据似乎被解释为字符串数据。这可以解释为什么 8 出现在列表的末尾而不是开头(因为字符串“8”按字典顺序确实出现在字符串“21”之后)。

要解决此问题,您可以执行以下任一操作:

  1. 将要排序的数组部分转换为某种数字类型的数组,例如 int。这将涉及一些复制,可能并不理想。

  2. 实现一个实现 IComparer 的类,您可以在其中定义要使用的比较操作。基本上,您应该将比较函数的两个字符串操作数都转换为数字,并根据数字比较返回适当的值。这可能就是您想要的。

关于c# - 对数组内的范围进行排序以进行计数而不是逻辑排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31928260/

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