C#Linq查询条件

时间:2015-01-15 21:16:38

标签: c# linq

我有一张桌子

enter image description here

我想只抓住所有行的status = 1的客户。所以在这个例子中它只会抓住John,因为Bob的状态= 2表示一条记录。

我想在linq c#中这样做。我是否需要首先为所有客户分组?然后有另一个查询来检查它是否包含<> 2然后打印出来?

什么是正确的方法?

2 个答案:

答案 0 :(得分:1)

你是对的。给出:

class Customer
{
    public string Name { get; set; }
    public int Status { get; set; }
}

你想要:

var names = customers.GroupBy(c => c.Name)
                     .Where(c => c.All(cc => cc.Status == 1))
                     .Select(c => c.Key)
                     .ToList();
  1. 按名称分组
  2. 抓取所有Status = 1
  3. 的项目
  4. 选择结果的名称

答案 1 :(得分:0)

var data = customers.where(c => c.status!= 2).select(c => c.Customer).Tolist()。distnict();