c# - 取两个可为空的值中的较大者

标签 c# nullable

假设我有两个可为空的整数:

int? a = 10;
int? b = 20;

我想取最大的非空值,这样如果两个值都为空,则结果为空。

我可以写一些冗长的东西,比如:

int? max;
if (a == null)
{
    max = b;
}
else if (b == null)
{
    max = a;
}
else
{
    max = a > b ? a : b;
}

根据我的喜好,这感觉有点太笨重(而且可能容易出错)。返回更大值的最简单方法是什么,这也说明了空值的可能性?

最佳答案

在一行中使用空合并运算符:

int? c = a > b ? a : b ?? a;

关于c# - 取两个可为空的值中的较大者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29985069/

相关文章:

c# - 如何指定 "collection of nullable types"的约束?

c# - Async-Await 表达式返回错误结果

c# - 如何在 C# Winform 中将用户添加到 SQL Server 数据库

scala - 标记方法调用它总是返回非空结果

c# - 为什么 Nullable<T> 不匹配作为泛型约束的引用类型

c# - AutoMapper 映射到 Enum 默认值,而不是在 null 时跳过

c# - 创建文本文件并下载

c# - .NET 中的 FTPListener

c# - Visual Studio 2012 Express for Web 不运行单元测试

nullable - 在 Kotlin 中,处理可为空值、引用或转换它们的惯用方法是什么?