C# C返回具有匹配属性的对象列表

C# C返回具有匹配属性的对象列表,c#,linq,C#,Linq,我有以下目标: class Car{ int price; string color; string size; } var list = new List<Car>(); list.Add...//add 20 cars //I now want to select from this list any cars whose color and size matches that of any other car list.Select(car =>

我有以下目标:

class Car{
   int price;
   string color;
   string size;
}

var list = new List<Car>();
list.Add...//add 20 cars

//I now want to select from this list any cars whose color and size matches that of any other car

list.Select(car => String.Join(car.color, car.size)) 

我想从这个列表中选择一组字符串颜色+大小,这些字符串出现在列表中的多辆车中

不确定在哪里继续使用linq,因为我已经花了一点时间来研究它了

您应该先按颜色和大小,然后选择计数大于1的项目

var groupedCars = list.
    GroupBy(c => c.color + c.size, c => c).
    Where(g => g.Count() > 1);
var结果=列表 .GroupByc=>string.Joinc.color,c.size 其中g=>g.计数>1 .选择g=>g.键 托利斯特先生;
此外,您应该将颜色和大小标记为公共字段或使用属性,这是更好的选择

您希望结果是符合条件的汽车实例列表,还是符合条件的汽车的颜色+大小字符串列表?您的问题并不完全清楚,但您似乎希望颜色和大小的组合,然后生成多个匹配的所有集合。见GroupBy;特别是,在正确的键上分组,而不是下面非常糟糕的答案中显示的示例,然后仅返回组中元素计数大于1的组。请参见复制以进行分组。