Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对列表进行排序<;int>;_C#_Linq_List - Fatal编程技术网

C# 对列表进行排序<;int>;

C# 对列表进行排序<;int>;,c#,linq,list,C#,Linq,List,使用C#对列表进行数字排序的最佳方法是什么? 我的清单有5,7,3项,我想把它们排序为3,5,7。我知道一些更长的方法,但我想linq有更快的方法吗 抱歉,这是一天的结束,我的思想在其他地方工作,第一次没有看到它的变化:(这里不需要LINQ,只需调用排序: list.Sort(); 示例代码: List<int> list = new List<int> { 5, 7, 3 }; list.Sort(); foreach (int x in list) { Co

使用C#对列表进行数字排序的最佳方法是什么? 我的清单有5,7,3项,我想把它们排序为3,5,7。我知道一些更长的方法,但我想linq有更快的方法吗


抱歉,这是一天的结束,我的思想在其他地方工作,第一次没有看到它的变化:(

这里不需要LINQ,只需调用排序:

list.Sort();
示例代码:

List<int> list = new List<int> { 5, 7, 3 };
list.Sort();
foreach (int x in list)
{
    Console.WriteLine(x);
}

对整数列表进行降序排序

class Program
    {       
        private class SortIntDescending : IComparer<int>
        {
            int IComparer<int>.Compare(int a, int b) //implement Compare
            {              
                if (a > b)
                    return -1; //normally greater than = 1
                if (a < b)
                    return 1; // normally smaller than = -1
                else
                    return 0; // equal
            }
        }

        static List<int> intlist = new List<int>(); // make a list

        static void Main(string[] args)
        {
            intlist.Add(5); //fill the list with 5 ints
            intlist.Add(3);
            intlist.Add(5);
            intlist.Add(15);
            intlist.Add(7);

            Console.WriteLine("Unsorted list :");
            Printlist(intlist);

            Console.WriteLine();
            // intlist.Sort(); uses the default Comparer, which is ascending
            intlist.Sort(new SortIntDescending()); //sort descending

            Console.WriteLine("Sorted descending list :");
            Printlist(intlist);

            Console.ReadKey(); //wait for keydown
        }

        static void Printlist(List<int> L)
        {
            foreach (int i in L) //print on the console
            {
                Console.WriteLine(i);
            }
        }
    }
类程序
{       
私有类排序器:IComparer
{
int IComparer.Compare(INTA,INTB)//实现比较
{              
如果(a>b)
return-1;//通常大于=1
if(a
保持简单是关键

试试下面

var values = new int[5,7,3];
values = values.OrderBy(p => p).ToList();
List List=新列表{5,7,3};
排序((x,y)=>y.CompareTo(x));
list.ForEach(action=>{Console.Write(action+“”);});
双jhon=3;
double[]数字=新的double[3];
对于(int i=0;i<3;i++)
{
numbers[i]=double.Parse(Console.ReadLine());
}
Console.WriteLine(“\n”);
数组。排序(数字);
对于(int i=0;i<3;i++)
{
控制台写入线(编号[i]);
}
Console.ReadLine();

整数降序排序列表您可以先排序,再反向排序

class Program
{
    static void Main(string[] args)
    {

        List<int> myList = new List<int>();

        myList.Add(38);
        myList.Add(34);
        myList.Add(35);
        myList.Add(36);
        myList.Add(37);


        myList.Sort();
        myList.Reverse();
        myList.ForEach(Console.WriteLine);


    }



}
类程序
{
静态void Main(字符串[]参数)
{
List myList=新列表();
增加(38);
myList.Add(34);
myList.Add(35);
myList.Add(36);
myList.Add(37);
myList.Sort();
myList.Reverse();
myList.ForEach(Console.WriteLine);
}
}

很抱歉,今天结束时,我正在进行排序之前查看它:(我想我找不到任何文件说它是按升序排序的,我只是偏执地说我们不能假设它总是按升序排序吗?谁知道也许20年后人们总是认为降序更有意义,这种假设将是新的y2kGreat解决方案,但这是件坏事。)t()返回类型为void-因此不可链接…使用@Will的答案代替。如果整数是字符串,您可以使用此伟大的方法自定义比较器的杰出示例!解释一下为什么这样可以解决OP的问题会很有帮助。虽然此代码段可以解决此问题,但确实有助于改进qu你的文章的真实性。请记住,你是在为将来的读者回答这个问题,而这些人可能不知道你的代码建议的原因。整数降序排序列表你可以先排序,然后倒序。如果你要解释你的答案是什么,以及它如何帮助解决他们的问题,这将有助于OP。将您的评论附加到您的帖子中。
var values = new int[5,7,3];
values = values.OrderBy(p => p).ToList();
List<int> list = new List<int> { 5, 7, 3 };  
list.Sort((x,y)=> y.CompareTo(x));  
list.ForEach(action => { Console.Write(action + " "); });
double jhon = 3;
double[] numbers = new double[3];
for (int i = 0; i < 3; i++)

{
    numbers[i] = double.Parse(Console.ReadLine());

}
Console.WriteLine("\n");

Array.Sort(numbers);

for (int i = 0; i < 3; i++)
{
    Console.WriteLine(numbers[i]);

}

Console.ReadLine();
class Program
{
    static void Main(string[] args)
    {

        List<int> myList = new List<int>();

        myList.Add(38);
        myList.Add(34);
        myList.Add(35);
        myList.Add(36);
        myList.Add(37);


        myList.Sort();
        myList.Reverse();
        myList.ForEach(Console.WriteLine);


    }



}