我有两个列表,其中一个是所有语言,另一个是该站点的语言子集,它的想法是返回所有语言,但改变布尔值的属性if子集的元素对应于所有语言的列表。检查哪些元素在一个列表中与另一个列表比较LINQ
DTO语言:
public class DTOLanguage
{
public bool HaveLanguage { get; set; }
public int IdLanguage { get; set; }
//Other properties...
}
方法返回所有语言:
public List<DTOLanguage> GetLanguagesById(int idSite)
{
var result = repository.RepSite.GetLanguagesById(idSite).Select(x => new DTOLanguage
{
IdLanguage = x.IdLanguage
}).ToList();
return result;
}
:返回语言的子集
public List<DTOLanguage> GetLanguages()
{
var result = repository.RepSite.GetLanguages().Select(x => new DTOLanguage
{
IdLanguage = x.IdLanguage,
CodName = x.CodName,
Name = x.Name
}).ToList();
return result;
}
方法
在DataAccess层中调用了GetLanguagesById
,所以我认为这种方法应该接收另一个参数(GetLanguages
返回)并在那里创建一些奇特的LINQ。
我知道我可以过滤(例如):
SubsetOfLanguages.Where(lg => lg.IdLanguage == AllLanguagesItem.IdLanguage)
{
AllLanguagesItem.HaveLanguage = True;
}
但是我真的不知道,因为它应该如何。
在此先感谢。
这真的做到了,upvoted并标记为答案。 作为一个方面说明,我用另一种方法包装它,谢谢! – user3442470