美文网首页
C#获取List数组升序后的位置信息

C#获取List数组升序后的位置信息

作者: GoodTekken | 来源:发表于2020-01-07 22:53 被阅读0次

在一个List数组中,假设需要加数组进行升序,如果需要获取数组升序后,数组元素会排序后的位置,可以使用以下方法。

 class Program
{
    static void Main(string[] args)
    {
        List<int> TestList = new List<int>();
        TestList.Add(3);
        TestList.Add(5);
        TestList.Add(1);
        TestList.Add(6);
        TestList.Add(4);

        for(int i=0;i< TestList.Count;i++)
        {
            Console.WriteLine("TestList["+i+"]:"+ TestList[i]+"的升序后的位置是:" + getAscendingIndex(TestList)[i]);
        }
        Console.ReadLine();
    }

    /// <summary>
    /// 返回一个数组升序后的位置信息
    /// </summary>
    /// <param name="array"></param>
    /// <returns></returns>
    static int[] getAscendingIndex(List<int> array)
    {
        int[] indexArray = new int[array.Count];
        for (int i = 0; i < array.Count; i++)
        {
            int index = 0;
            for (int j = 0; j < array.Count; j++)
            {
                if (array[j] <= array[i])
                {
                    index++;
                }
            }
            indexArray[i] = index;
        }
        return indexArray;
    }
}

运行结果:
TestList[0]:3的升序后的位置是:2
TestList[1]:5的升序后的位置是:4
TestList[2]:1的升序后的位置是:1
TestList[3]:6的升序后的位置是:5
TestList[4]:4的升序后的位置是:3

注意的是:这里的排序是从1开始计算的,后面使用时注意数组溢出,当然也是可以从0开始计数的,将if (array[j] <= array[i]) 改为 if (array[j] < array[i])就可以,运行结果:
TestList[0]:3的升序后的位置是:1
TestList[1]:5的升序后的位置是:3
TestList[2]:1的升序后的位置是:0
TestList[3]:6的升序后的位置是:4
TestList[4]:4的升序后的位置是:2

所以,这样出来的数据就可以直接使用,不用担心溢出的问题啦!

相关文章

  • C#获取List数组升序后的位置信息

    在一个List数组中,假设需要加数组进行升序,如果需要获取数组升序后,数组元素会排序后的位置,可以使用以下方法。 ...

  • 集合

    List 将String数组添加到List: sort排序 降序: 升序: 转换 list转Array 数组转集合...

  • C# 枚举器和可枚举类型

    在C#中能够使用foreach语句遍历数组和List等对象的原因就在于这些对象是可枚举类型,这些可枚举类型能够获取...

  • Dart入门02 -- 数组与字典

    数组 Dart语言中,List类表示数组; 数组的初始化 数组的常用方法 获取数组长度 获取数组的第一个元素 获取...

  • C# 常用数据结构

    一、c#中的数组、ArrayList、List区别[https://www.cnblogs.com/newcape...

  • C#中数组、集合(ArrayList)、泛型集合List

    C#中数组、集合(ArrayList)、泛型集合List、字典(dictionary

  • 1.list和tuple

    list的使用 声明list变量 获取list元素个数len() 访问list每一个位置的元素,索引位置从0开始 ...

  • C# List Sort 排序用法总结

    一、升序、降序 其实C#中的List的Sort函数中的比较函数CompareTo有三种结果 1, -1 ,0分别代...

  • Flutter removerange在forEach中失效的问

    在List > allData = new List()中,使用ForEach,然后获取每个子数组item,但是...

  • 管理List的优化

    C# List 是个很好用的类型,但是作为数组他有自己的缺陷,插入和删除特别耗,所以,如果这个List需要这...

网友评论

      本文标题:C#获取List数组升序后的位置信息

      本文链接:https://www.haomeiwen.com/subject/buzdactx.html