获取数组由小到大排序后的原索引值
/// <summary>
/// 将数值类型的数值进行“从小到大”的排序并返回原索引值
/// </summary>
/// <param name="objectArray">传入的数值类型数组(double[])</param>
/// <returns></returns>
private int[] GetArrayIndex(double[] objectArray)
{
//生成值和索引的列表
List<double[]> newArrayList = new List<double[]> { };
for (int i = 0; i < objectArray.Length; i++)
{
newArrayList.Add(new double[] { objectArray[i], i });
}
//对列表按照值小到大进行排序
newArrayList.Sort((a,b) => a[0].CompareTo(b[0]));
//获取排序后的原索引
List<int> indexNum = new List<int> { };
foreach (double[] item in newArrayList)
{
indexNum.Add((int)item[1]);
}
//返回结果
return indexNum.ToArray();
}
从以下链接进行了学习:
C#的List数据排序并获取排序后对应原始数据索引值
C# 数组Array.Sort()、List.Sort()排序使用方法
C# - List.Sort()自定义排序方法