根据条件从列表中删除重复项

use*_*715 5 c# linq c#-4.0

我有一个具有属性的项目(名称,价格).

   Item1       $100
   Item2       $200
   Item3       $150
   Item1       $500
   Item3       $150
Run Code Online (Sandbox Code Playgroud)

我想只在Name存在多次且使用LINQ并且没有创建自定义比较器时价格为$ 500时删除项目?对于上面一个具有$ 500的item1将从列表中删除.

谢谢,

dav*_*d.s 8

试试这个:

var result = items
    .GroupBy(item => item.Name)
    .SelectMany(g => g.Count() > 1 ? g.Where(x => x.Price != 500) : g);
Run Code Online (Sandbox Code Playgroud)

第一组按名称.如果该组具有多个项目,则仅选择价格不是500的组中的项目.