C# 建议反模式组合ToList+ForEach迭代集合,尤其是对新开发人员。它必须迭代整个集合2倍,分配至少一个可能的多个数组(对于列表的备份数组)以及多个数组副本/大小,分配委托+潜在闭包,涉及2个方法调用和其他可能的事情。请只需将普通的foreach用于O

C# 建议反模式组合ToList+ForEach迭代集合,尤其是对新开发人员。它必须迭代整个集合2倍,分配至少一个可能的多个数组(对于列表的备份数组)以及多个数组副本/大小,分配委托+潜在闭包,涉及2个方法调用和其他可能的事情。请只需将普通的foreach用于O,c#,linq,C#,Linq,建议反模式组合ToList+ForEach迭代集合,尤其是对新开发人员。它必须迭代整个集合2倍,分配至少一个可能的多个数组(对于列表的备份数组)以及多个数组副本/大小,分配委托+潜在闭包,涉及2个方法调用和其他可能的事情。请只需将普通的foreach用于OrderByDescending的结果。如果必须,请使用ToList(即,您需要进一步的结果,并且不需要对根进行多次枚举),但请使用普通的foreach!Ivan我可以问你out var parsedInpt在if声明中做了什么吗?@Navid


建议反模式组合
ToList
+
ForEach
迭代集合,尤其是对新开发人员。它必须迭代整个集合2倍,分配至少一个可能的多个数组(对于列表的备份数组)以及多个数组副本/大小,分配委托+潜在闭包,涉及2个方法调用和其他可能的事情。请只需将普通的
foreach
用于
OrderByDescending
的结果。如果必须,请使用
ToList
(即,您需要进一步的结果,并且不需要对根进行多次枚举),但请使用普通的
foreach
!Ivan我可以问你out var parsedInpt在if声明中做了什么吗?@Navid,对不起,我不是一个好老师,所以我能做的最好是推荐两篇文章:-官方MS docs,-也许也有帮助。我想说的是,如果传递了需要处理的错误格式(不是整数),int.Parse()将引发异常。如果字符串转换正确,TryParse()将返回true祝您愉快。@pinkfloydx33,不,我不会对一个控制台使用“普通fpreach”。Writeline()命令,lol。问题是关于Linq的,我演示了如何在Linq中使用它。你看到了什么问题?你是坐了几个小时来优化你的代码,还是随心所欲地快速运行,如果真的运行时间过长,就进行优化?
  static void Main(string[] args)
    {

        List<int> list = new List<int>();
        var inpt = Console.ReadLine();
        var parsedInpt = Int32.Parse(inpt);
        list.Add(parsedInpt);

        foreach (var item in list)
        {
            var query = from n in list
                        orderby n descending
                        select n;
            Console.WriteLine(query);
        }
    }  
        var query = from n in list
                    orderby n descending
                    select n;
        foreach (var item in query) {
          Console.WriteLine(query);
        }
 while(true){
     list.Add(int.Parse(Console.ReadLine()));

     var orderedList = list.OrderByDescending(x => x);

     Console.WriteLine(string.Join(",", orderedList));
 }
using System;
using System.Collections.Generic;
using System.Linq;

var list = new List<int>();

var input = "";
do
{
    input = Console.ReadLine();
    if (int.TryParse(input, out var parsedInpt))
    list.Add(parsedInpt);
} while (input.Length > 0);


list.OrderByDescending(x => x)
    .ToList()
    .ForEach(x => Console.WriteLine(x));