You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#的ShowSort函数中按Time从小到大排序List<Islem>?

解决方案:按Time属性排序输出Islem列表

要解决这个问题,你有两种常用实现方式,可根据是否需要保留原列表顺序选择:

方法1:使用LINQ生成排序后的临时序列(不修改原列表)

这种方式不会改动category.Islemler原有的元素顺序,仅在输出时使用排序后的临时结果,适合不需要持久化排序状态的场景:

private static void ShowSort(Hat category)
{
    // 按Time属性从小到大排序,生成临时序列
    foreach (var product in category.Islemler.OrderBy(p => p.Time))
    {
        Console.WriteLine($"{product.Name} : {product.Time} 秒.");
    }
    Console.WriteLine("");
}

方法2:直接对原List进行排序(修改原列表顺序)

如果希望后续使用category.Islemler时都保持排序后的状态,可以直接调用List自带的Sort方法,修改原列表的元素顺序:

private static void ShowSort(Hat category)
{
    // 按Time属性从小到大排序原列表
    category.Islemler.Sort((a, b) => a.Time.CompareTo(b.Time));
    
    foreach (var product in category.Islemler)
    {
        Console.WriteLine($"{product.Name} : {product.Time} 秒.");
    }
    Console.WriteLine("");
}

补充说明

从你提供的代码来看,Time是值类型(int),无需处理null情况;如果后续Time改为可空类型(int?),可以在排序时补充null值处理,比如OrderBy(p => p.Time ?? 0)或在Sort比较器中增加null判断逻辑。

内容的提问来源于stack exchange,提问作者deadangel13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 04:15:18