我有以下 JSON 被放入物件串列中。每個物件都有一個屬性和一個代碼串列。我正在努力尋找一種方法來查詢串列以查找特定公司的特定代碼值。我最終正在尋找基于公司/PayCode 的“AbsenceType”值。這是我試圖查看的內容,但它不起作用。尋找任何建議。
companyAbsenceType = AbsenceCodesList.First(c =>
(c.Company == companyCode) && (c.Codes.Find(x => x.PayCode == ppc.PayCode));
companyAbsenceType = AbsenceCodesList.Select(c =>
c.Company == companyCode && c.Codes.Find(x => x.PayCode == ppc.PayCode)).FirstOrDefault();
JSON:
[
{
"Company": "Company1",
"Codes": [
{
"PayCode": "SCK",
"AbsenceType": "Illness"
},
{
"PayCode": "VAC",
"AbsenceType": "Vacation"
},
{
"PayCode": "BRV",
"AbsenceType": "Bereavement"
},
{
"PayCode": "JUR",
"AbsenceType": "Jury Duty"
},
{
"PayCode": "PER",
"AbsenceType": "Personal"
}
]
},
{
"Company": " Company2",
"Codes": [
{
"PayCode": "SCK",
"AbsenceType": "Sick"
},
{
"PayCode": "VAC",
"AbsenceType": "Vacation"
},
{
"PayCode": "BRV",
"AbsenceType": "Bereavement"
},
{
"PayCode": "JUR",
"AbsenceType": "Jury Duty"
},
{
"PayCode": "PER",
"AbsenceType": "Personal"
},
{
"PayCode": "PRNU",
"AbsenceType": "Personal"
}
]
}
]
public class AbsenceCodes
{
public string Company { get; set; }
public List<AbsenceCode> Codes { get; set; }
}
public class AbsenceCode
{
public string PayCode { get; set; }
public string AbsenceType { get; set; }
}
更新 感謝 Moho 和 Eric Magers 將我指向一個查詢。來自 Moho 的查詢奏效了。
var 缺席型別 = AbsenceCodesList.FirstOrDefault(c => c.Company == companyCode && c.Codes.Any(x => x.PayCode == ppc.PayCode)) ?.Codes.First(c => c.PayCode == ppc.PayCode) ?.AbsenceType;
uj5u.com熱心網友回復:
你很接近,使用.Any而不是過濾時.Find:Codes
var absenceType = AbsenceCodesList
// first find a valid top level item
.FirstOrDefault(c =>
// is specific company
c.Company == companyCode
// has the target paycode
&& c.Codes.Any(x => x.PayCode == ppc.PayCode))
// then select the desired value
?.Codes.First(c => c.PayCode == ppc.PayCode)
.AbsenceType;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/418200.html
標籤:
上一篇:根據資料值啟用/禁用按鈕
