这是我的预览问题的变体,您可以在此链接中看到: 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
和我列表中的一个元素之间的名称是最高优先级。
还有一件事,对象列表按优先级排序,因此您将首先获得最大优先级,并且因为我们希望获得最大优先级,所以需要停在那里,无需继续搜索最大数量/相同名称。两个列表都可以有不同数量的元素。
答案 0 :(得分:0)
嗯,它与其他lambda表达式没那么不同。
这是Lambda表达式:
User.ProfileAD = nameProfilesAD.Where(a => nameProfilesAD.Contains(a.GroupAD)).FirstOrDefault();