首页 > 解决方案 > 使用内联连接检查 IsNullOrEmpty

问题描述

我有以下内容:

var result = info.FirstName + " " + "(" + info.PhonNumber + ")";

请注意,FirstName 和 PhoneNumber 都是字符串值。

我喜欢做的是如果 info.PhonNumber 为空/空,我不想在 PhoneNumber 周围显示括号。我知道如何使用 IsNullOrEmpty 方法,在这种情况下我需要使用if语句,但是是否有更有效的方法来进行内联验证以检查 info.PhoneNumber 是否为 nullempty,如果是则不连接它?

标签: c#

解决方案


我认为扩展方法更好:

public static string FormatIfNotNull(this string input, string formatString)
{
    if(string.IsNullOrWhiteSpace(input))
        return string.Empty;

    return string.Format(formatString, input);
}

这更可重用和更清洁。然后你可以这样称呼它:

var result = info.FirstName + info.PhonNumber.FormatIfNotNull(" ({0})");

导致以下输入/输出

info.FirstName = "Steve";
info.PhonNumber = "123.555.7890";
var result = info.FirstName + info.PhonNumber.FormatIfNotNull(" ({0})");
//result is "Steve (123.555.7890)"

info.FirstName = "Jerry";
info.PhonNumber = "";
var result = info.FirstName + info.PhonNumber.FormatIfNotNull(" ({0})");
//result is "Steve"

请注意,我保留了拼写错误“PhonNumber”,因为您的帖子包含它。

在这里提琴


推荐阅读