根据列表中的特定列值选择不同行

本文关键字:选择 列表 | 更新日期: 2023-09-27 18:14:40

我有以下列表Lsit<Car> lstcarIP它有以下数据

ID  | Name | Year
0 - Zen    - 1990
1 - Alto   - 2003
3 - Zen    - 2004
4 - Santro - 2000
5 - Alto   - 2003

无论ID和年份如何,输出list<Car> lstFinal都应该包含

   ID  | Name | Year
    0 - Zen    - 1990
    1 - Alto   - 2003 
    4 - Santro - 2000

 ID  | Name | Year 
    3 - Zen    - 2004
    4 - Santro - 2000
    5 - Alto   - 2003

ie如果Name再次出现,则只应在list<Car> lstFinal中添加一个条目。我尝试使用LastorDefaultGroupBy

 lstFinal= lstcarIP.GroupBy(s => s.Name)
                            .Where(g => g.Count() > 1)
                             .SelectMany(g => g)
                             .ToList<Car>();

但不能得到正确的结果。你能纠正我并指出我的错误吗?谢谢你的帮助!:)

根据列表中的特定列值选择不同行

你只要GroupBy,然后得到First

 lstFinal = lstcarIP.GroupBy(s => s.Name)
                    .Select(g => g.First())
                    .ToList<Car>();