我有2个包含通用列表属性的对象。 IE:
public class User
{
public string Sid { get; set; }
public List<Group> Groups { get; set; }
}
public class Section
{
public string Sid { get; set; }
public List<Group> Groups { get; set; }
}
从我的BLL中我得到一个通用的部分列表 列出mySections = SectionDB.getList();
我的User对象包含用户信息 用户myUser = UserDB.getInfo(sid);
使用linq到对象,是否可以创建一个查询来检索组用户类中至少有一个组的所有部分?
任何帮助?
答案 0 :(得分:2)
from section in mySections
from sectionGroup in section.Groups
where myUser.Groups.Any(userGroup => userGroup == sectionGroup)
select section
我宁愿选择任何,因为你更有效地使用迭代器
答案 1 :(得分:2)
var sections = mySections.Where(x => x.Groups.Intersect(myUser.Groups)
.Any()).ToList();
(请注意,这取决于Group
实例的引用相等,或Equals
类型上合适的GetHashCode
/ Group
实现