我已经使用LINQ有一段时间了,但在处理唯一项时似乎卡住了,我有以下列表:
List<Stock> stock = new List<Stock>();
这个对象具有以下属性: 字符串ID,字符串类型,字符串描述,例如:
public class Stock
{
public string ID { get; set; }
public string Type { get; set; }
public string Description { get; set; }
}
我希望有一个LINQ查询,可以按照Stock中的Type对项进行分组,并将其作为新的Stock列表返回(必须与原始Stock列表具有相同的类型)。
示例数据:
ID Type Description
----------------------------------------------
1 Kitchen Appliance Dishwasher
2 Living Room Television
3 Kitchen Appliance Washing Machine
4 Kitchen Appliance Fridge
我的Linq查询想要能够返回所有的厨房电器,例如。因此,我会将其作为“类型”传递给查询,它将从这个示例列表中返回项目1、3和4。此返回的列表也必须是类型:
List<Stock>
。本质上,我想要一个按照类型唯一项的列表,有点像SQL Distinct查询,如何在LINQ中实现呢?替代方案可以使用Silverlight / C#客户端代码。
另一个澄清是,我也可能不提供参数“厨房电器”,只想要唯一的,例如它将只返回每种类型的Kitchen Appliance和Living Room一次,以某种方式表示类别,不管这种类型有多少个。