我有兩個列表,其中一個是所有語言,另一個是該站點的語言子集,它的想法是返回所有語言,但改變布爾值的屬性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