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的组。请参见复制以进行分组。