我如何通过每个对象的成员对对象列表进行排序?

这个问题在这里已经有了答案:

  • 如何按对象中的属性排序列表<T> 19答案

  • 漂亮的标准,简单的linq。

    var candleList = candleList.Distinct().OrderBy(x => x.date).ToList();
    

    正如Adam在下面提到的,这只会删除列表中的重复实例,而不是具有所有相同属性值的实例。

    您可以实现自己的IEqualityComparer<Candle>作为通过它的选项。 的IEqualityComparer

    你可能想看看msdn,并阅读Linq和Enumerable方法:MSDN - 枚举方法


    如果您使用.NET 3.5及以上版本,则可以使用IList上的OrderBy扩展,如下所示:

    var orderList = candleList.OrderBy(s => s.date);
    

    另外你可以使用SortBy

    var orderList = candleList.SortBy((x, y) => x.date.CompareTo(y.date) );
    

    要删除重复项,您可以执行以下操作:

    var distinctList = orderList.GroupBy(x => x.date).Select(grp => grp.First());
    

    最后再次获得清单

    var finalList = distinctList.ToList();
    

    流利的方式:

    List<candle> finalList = candleList.OrderBy(s => s.date).Distinct().ToList();
    

    顺便说一下,在stackoverflow中还有其他一些问题来解释这些问题,搜索它们,你会发现其他细节。


    那我怎样才能按日期排列candleList?

    var orderedList = candleList.OrderBy(p=>p.date);
    

    另外,我如何从candleList中删除所有重复的条目?

    你应该告诉我们你如何比较两个candle物体。 按date假设你可以这样做:

    var uniqueList = candleList.GroupBy(p=>p.date).Where(p=>p.Count() == 1).ToList();
    

    此外,您可以使用Distinct()或intorduce一个IEqualityComparer<candle>来比较两个蜡烛对象并删除重复项。

    链接地址: http://www.djcxy.com/p/70941.html

    上一篇: How can I sort a list of objects by a member of each object?

    下一篇: Sort list of class objects in c#