繁体   English   中英

C#:LINQ:如果 Null 分配默认值

[英]C#: LINQ: If Null assign default value

我有一个 string[] 字段为 {prop1 = val1, prop2 = val2, amount = 30.00}。 我尝试按如下方式获取金额的值:

TransactionAmount = fields?.FirstOrDefault(x => x.ToLower().Contains("amount"))?.Split('=')[1].ToString();

如果金额(非字段)为空,如何分配默认值?

TransactionAmount = fields?.FirstOrDefault(x => x.ToLower().Contains("amount"))?.Split('=')[1].ToString() : "0.00"; //this is not working

谢谢

使用空合并运算符。 (或 ?? 运算符)

下面两个是一样的:

return A ?? B;//Using the null-coalescing operator.

if (A == null) return B;//Using if-else.
else return A;

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-coalescing-operator

检查数组是否为空:

//Is Fields null? if not, use fields, otherwise, use the
//new string array with the "DEFAULT_VALUE".
(fields ?? new string[] { "DEFAULT_VALUE" }).FirstOrDefault(x => x.ToLower().Contains("amount")).Split('=')[1];

并检查 FirstOrDefault 是否返回 null:

(fields.FirstOrDefault(x => x.ToLower().Contains("amount")) ?? "DEFAULT_VALUE").Split('=')[1];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM