【发布时间】:2019-08-06 02:08:19
【问题描述】:
您好,我有一个枚举数组,我正在尝试按其枚举值对该数组进行排序并获取顶部的数组索引
private enum Values
{
LOW,
MEDIUM,
HIGH
}
private Values[] Settings = new Values[10];
Settings[0] = LOW;
Settings[1] = HIGH;
Settings[2] = MEDIUM;
Settings[3] = LOW;
Settings[4] = LOW;
Settings[5] = LOW;
Settings[6] = LOW;
Settings[7] = LOW;
Settings[8] = MEDIUM;
Settings[9] = MEDIUM;
现在基本上,有了上面的内容,我需要按枚举值对设置数组进行排序,并获取顶部(比如说 3)项的数组索引;
所以我会返回值 1、2、8
我使用的平台不支持 LINQ,所以这些方便的功能不可用。
我一直在努力解决这个问题,但如果有另一双眼睛会有所帮助。
谢谢。
【问题讨论】:
-
对不起,是的,编辑切断了部分开场描述。那应该是前 3 名。我正在尝试从该数组中获取前 3 个最高值。其中 - 在特定示例中 - 将是数组索引 1、2 和 8。
-
您想要最高值还是这些值的索引?您可以创建一个列表或数组来保存结果,然后使用 for 或 foreach 循环遍历列表并收集结果。可能是您的讲师希望您先创建一个排序算法,然后收集结果(您是否正在学习冒泡排序?)。
-
你使用什么框架?如果不是 LINQ,你可以使用什么?
-
那不是有效的代码...应该是
Settings[0] = Values.LOW; -
您的意图并不清楚。对数组进行排序并获取前 3 个。如果对该数组进行排序,前三个将是相同的值。如果您尝试遍历数组并获得前 3 个最高值,它们也将相同。如果您想要前 3 个不同的最高值,那么这也是一个不同的操作。你的意图是排序,意图获得最高的最高,最高的不同,以上所有?
标签: c#