在两个列表之间的Lambda Expression中使用更多条件进行搜索

时间:2016-09-05 14:07:00

标签: c# linq lambda

这是我的预览问题的变体,您可以在此链接中看到: LINQ - search between IList and list of strings

现在,根据之前的问题,我有两个列表,一个是对象列表,类如下:

div {
  &:hover {
    transform: scale(1.1);
    .social-sharing {
      display: block;
    }
  }
  .social-sharing {
    display: none;
    .fb {
      border-right: 3px solid #fff;
    }
  }
}

另一个列表是字符串:public class ProfileAD { public string GroupAD { get; set; } public string Profile{ get; set; } public int Priority { get; set; } }

List<string> nameProfilesAD列表是用户拥有的Active Directory组的名称,因此用户可以拥有5个组。

现在如您所见,对象列表nameProfilesAD有两个属性,一个是ProfileAD(组的名称)和GroupAD

我们的想法是创建一个Lambda表达式,它保存匹配的对象,该对象在我的Object的属性Priority和我列表中的一个元素之间的名称是最高优先级。

还有一件事,对象列表按优先级排序,因此您将首先获得最大优先级,并且因为我们希望获得最大优先级,所以需要停在那里,无需继续搜索最大数量/相同名称。两个列表都可以有不同数量的元素。

1 个答案:

答案 0 :(得分:0)

嗯,它与其他lambda表达式没那么不同。

这是Lambda表达式:

User.ProfileAD = nameProfilesAD.Where(a => nameProfilesAD.Contains(a.GroupAD)).FirstOrDefault();