简体   繁体   English

VB.NET转C#Linq

[英]VB.NET to C# Linq

I have the following LINQ 我有以下LINQ

            Dim z = (From d In db.GPSdevice
                     Where d.CompanyId = currentuser.CompanyId And d.Type = "Truck" Or d.Type = "Trailer"
                     Order By d.ListOrder Descending
                     Group d By d.Driver Into g = Group
                     Select g.FirstOrDefault())

I try to convert it to c# 我尝试将其转换为C#

        var z = db.GPSdevices
            .Where(p => p.CompanyId == companyID && p.Type == "Truck" || p.Type == "Trailer") 
            .OrderByDescending(p => p.ListOrder)
            .GroupBy(p => p.Driver)
            .Select(g => new { Group = g });

but not sure, how to convert Select g.FirstOrDefault()... 但不确定如何转换选择g.FirstOrDefault()...

You can use the query syntax in C# too, no need to rewrite using the extension methods directly: 您也可以在C#中使用查询语法 ,无需直接使用扩展方法进行重写:

var z = (from d In db.GPSdevice
        where (d.CompanyId == currentuser.CompanyId) && (d.Type == "Truck") || (d.Type == "Trailer")
        orderby d.ListOrder descending
        group d by d.Driver into g = group
        select g.FirstOrDefault())

Just call g.FirstOrDefault() in your Select 只需在您的Select调用g.FirstOrDefault()

    var z = db.GPSdevices
        .Where(p => p.CompanyId == companyID && p.Type == "Truck" || p.Type == "Trailer") 
        .OrderByDescending(p => p.ListOrder)
        .GroupBy(p => p.Driver)
        .Select(g => g.FirstOrDefault());

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM