我有以下課程:
Public Class User
{
public List<SpecificUser> SpecificUsers{get;set;}
}
Public Class SpecificUser
{
public bool IsDefault{get;set;}
public List<SpecificUserRole> SpecificUserRoles{get;set;}
}
Public Class SpecificUserRoles
{
public bool IsPrimary{get;set;}
}
要求:給定一個用戶物件,我只想獲取 IsDefault=true 的 SpecificUser 物件,并且(該特定用戶)具有 IsPrimary=true 的“a”SpecificUserRole。這是我嘗試過的,但它回傳的是 bool 而不是 SpecificUser 的實體。
var defaultSpecificUser = user.SpecificUsers.Select(au => au.IsDefault && au.SpecificUserRoles.Select(aur => aur.IsPrimary).FirstOrDefault()).FirstOrDefault();
我可以通過兩個查詢來實作它;但想一次性完成:
var defaultSpecificUsers = user.SpecificUsers.Where(au => au.IsDefault).ToList();
var primarySpecificUser = defaultSpecificUsers .FirstOrDefault(ddau => ddau.SpecificUserRoles.Select(aur => aur.IsPrimary).FirstOrDefault());
任何幫助將不勝感激。提前致謝。
uj5u.com熱心網友回復:
這看起來很簡單:
user.SpecificUsers.Where(su => su.IsDefault == true && su.SpecificUserRoles.Any(sr => sr.IsPrimary == true));
或簡化:
user.SpecificUsers.Where(su => su.IsDefault && su.SpecificUserRoles.Any(sr => sr.IsPrimary);
這當然假設不止一個特定用戶符合標準。如果您只想要一個,請替換Where或者First如果FirstOrDefault您不確定是否存在一個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/439317.html
下一篇:帶有文本檢查/驗證的C#登錄錯誤
