linq查询检查GroupBy()的值

时间:2017-05-10 16:35:33

标签: c# linq

考虑以下数据对象:

OrderId WarehouseId Sku         Dropship
========================================
630     1           ABC-123     Yes 
630     2           ABC-123     T            
630     3           ABC-123     null
630     1           XYZ-789         
630     2           XYZ-789     null             
630     3           XYZ-789

我需要一个linq查询来获取不属于dropship项目的项目数。飞船的确定是:

Dropship = false:如果Dropship字段为nullempty,则所有3 {{1} }}。在上面的示例中,sku不会被视为dropship项目。

WarehouseId:如果sku XYZ-789字段为Dropship = trueDropship,则任何一个的给定not null not empty。在上面的示例中,sku将被视为dropship项目。

使用以下查询,我希望得到WarehouseId的结果,但收到sku ABC-123

1

2 个答案:

答案 0 :(得分:0)

而不是controller as使用ng-controller="mainController"!string.IsNullOrEmpty(x.Dropship)中的!(x.Dropship==null || x.Dropship.Equals(""))存在一些问题。

答案 1 :(得分:0)

当您不需要群组时,我更倾向于.Select().Distinct().Count()使用.GroupBy().Count(),不确定哪个群组更有效率。

int dropshipItems = orderItems
    .Where(x => !string.IsNullOrEmpty(x.Dropship.Trim()))
    .Select(x => x.Sku)
    .Distinct()
    .Count();