C# Linq 查询条件

C# Linq query condition

我有一个table

我只想抓取所有行的状态 = 1 的客户。所以在这个例子中,它只会抓住约翰,因为鲍勃有一条记录的状态=2。

我想在 linq c# 中执行此操作。我需要先为所有客户分组吗?然后有另一个查询来检查它是否不包含 <> 2 然后打印它?

正确的方法是什么?

你是对的。给定:

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. Select 结果的名称

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