LINQ查询可以更改但可以分组?

时间:2010-09-14 19:37:26

标签: c# linq

这是我想要做的事情。我知道你可以再次查询linq结果,但由于这些结果是成组的,我不知道如何。我认为我能想到的最好的想法是有一个查询来获取所有内容,然后执行我的if语句,然后执行另一个查询将所有内容分组(因此有3个单独的查询而不是1)。关于如何最好地做这类事情的任何想法?

var Result =
    from a in DB.Table

    if(Something == 0)
    {
        where a.Value > 0
    }

    group a by a.Value into b
    select new {Group = b};

3 个答案:

答案 0 :(得分:1)

var result = from a in DB.Table;

if (Something == 0) 
{
 result = result.Where(r => r.Value > 0);
}

var finalResult = 
from a in result
group a by a.Value into b
select new {Group = b};

答案 1 :(得分:1)

这会做你想要的吗?

        var result =
        from a in DB.Table
        group a by a.Value into g
        where !Something.Equals(0) || g.Key > 0
        select new { Group = g };

答案 2 :(得分:0)

您可以使用“where”语句限制Linq查询。试着用它来实现。类似的东西:

var res = 来自db.table中的c 其中c.Id == 1 选择c