我可以在linq查询中有Any吗?

时间:2016-02-03 16:32:17

标签: c# linq

我正在尝试使用bool从集合中获取ID,以告诉我该ID是否与其他值相关联。

所以,我有这个:

public class RoleAssignment
{
    [Key]
    public int RoleAssignmentId { get; set; }

    public Guid AssigneeId { get; set; }

    public int RoleId { get; set; }
}

有了这些数据:

var rAssnd = new List<RoleAssignment>{
    { 2, 0251F0D6-F2C9-E511-8C3C-00215E466552, 48 }
    { 3, 0251F0D6-F2C9-E511-8C3C-00215E466552, 49 }
    { 4, 0251F0D6-F2C9-E511-8C3C-00215E466552, 52 }
    { 5, F48459F5-469F-E511-8172-00215E466552, 44 }
}

所以,如果我正在检查RoleId 49,我想得到一个这样的结果集:

0251F0D6-F2C9-E511-8C3C-00215E466552, true
F48459F5-469F-E511-8172-00215E466552, false

现在我正在尝试这个:

var results = selected.GroupBy (s => s.AssigneeId, s => s.RoleId == proposalRole);

但这给了我Guid和一份清单。

我可以将第二个值设为Any(s.RoleId == proposalRole)吗?

1 个答案:

答案 0 :(得分:2)

第一组,然后使用any来检查每个组的规则。

var results = rAssnd
    .GroupBy(s => s.AssigneeId)
    .Select(g => new
    {
        g.Key,
        hasRule = g.Any(s => s.RoleId == proposalRole)
    });