我试图弄清楚为什么这个LINQ查询(C#)不能像预期的那样工作:
// If the user receives 3 salaries, take the first, if not, show as 100
var salary = populationData
.Select(
x => x.AdultData?
.TaxPayerData?
.Where(x => x.Salary.Count == 3)
.Select(x => x.Value).FirstOrDefault()
)
.DefaultIfEmpty(100)
.ToList();PS我更正了属性的名称,它们具有误导性,对不起。
假设对于某些人IsAdult = false和TaxPayer = null,对于这些人,我需要DefaultIfEmpty = 100,或者我选择的任何其他值,但不需要null。目前,我的结果是null。有什么想法吗?
发布于 2020-01-15 09:50:18
你可以试试这种方式。
// If the user receives 3 salaries, take the first, if not, show as 100
var salary = populationData
.Select(
x => {
var result = x.AdultData?
.TaxPayerData?
.Where(x => x.Salary.Count == 3)
.Select(x => x.Value).FirstOrDefault()
return result ?? 100;}
)
.ToList();https://stackoverflow.com/questions/59739153
复制相似问题