如何将LINQ Lambda表达式显示到文本框

时间:2017-05-09 20:52:37

标签: c# linq lambda

我是Lambda Expressions的新手,我试图为我自己设定的以下任务找到一个简单的解决方案。 客户拥有一系列汽车。使用LINQ获得他拥有的汽车总数。 下面的代码,不确定这是否正确?我的第二个问题是如何在文本框中显示TotalNumberCars

using (Entities dbcontext = new Entities())
{
    var ListByOwner = from c in dbcontext.Owners
                      where c.OwnerID == OwnerID
                      group c by c.Cars into g
                      select new
                      {
                          Owner = g.Key,
                          TotalNumberCars = g.Sum(x => x.Cars)
                      };

    lblTotalCars.Text = ListByOwner.ToList();
}

3 个答案:

答案 0 :(得分:2)

我不知道您的实体数据模型是如何构建的,但我会这样做:

using (var dbContext = new Entities())
{
    var numberOfCars = dbContext.Cars.Count(c => c.OwnerId == OwnderId);
    lblTotalCars.Text = numberOfCars.ToString();
}

如果没有c.OwnerId,那么可以通过输入c.Owner.OwnerId来访问它。

答案 1 :(得分:1)

ListByOwner.ToList()是您Select投影中新项目的数组(通用列表)。每个项目都是一个动态实体,具有OwnerTotalNumberCars两个属性。您需要索引或预先进入列表,将所需内容提取到字符串中,并且可以是您的文本。

例如lblTotalCars.Text = ListByOwner[0].Owner;将显示第一个项目的所有者。

拿这个并填写你需要的东西。

答案 2 :(得分:1)

检查此代码

lblTotalCars.Text = ListByOwner.ToList().sum(c=>c.TotalNumberCars).ToString();