2012-07-26 159 views
1

我通过我的多列的表试图组和检查,如果分组计数等于2。我有查询这部分工作的值LINQ检查是否存在在列表

var query = from product in Products 
      group by new { product.Product, product.Location, product.Customer } into grp 
      where grp.Count() != 2 

的产品有另一个属性类别,它只能有两个值“高”&“低”。 如何更改此查询以处理除分组计数以外的类别检查。

Product Location Customer Category 
    A   X   C1   High 
    A   X   C1   Low 
    A   Y   C1   High 
    A   Y   C1   Low 
    A   Y   C1   Low 
    B   X   C1   High 
    B   X   C1   Medium 

在上面的例子中,除了在位置X和客户C1产品A,所有其他记录都是无效的。位置Y有两个低点,产品B有一个不属于列表的中等类别:高&低。

回答

0

如果你希望只特定类别,使用where ..表达:

var query = from product in Products 
      where product.Category == "Low" || product.Category == "High" 
      group ... 
+0

感谢。在我的情况下,我想确定类别不是低或高的记录,如果它们是低和高,那么我需要确保只有一个低和一个高记录。我可以看到如何完成两个不同的查询,但希望我可以使用单个查询来实现此目的。 – user320587 2012-07-26 19:38:19