这是我想要做的事情。我知道你可以再次查询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};
答案 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