使用内联连接检查 IsNullOrEmpty

我有以下几点:

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

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

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


缥缈止盈
浏览 166回答 3
3回答

元芳怎么了

你的意思是像var result = info.FirstName +               (string.IsNullOrEmpty(info.PhonNumber) ?                           string.Empty : ( " (" + info.PhonNumber + ")" ));

斯蒂芬大帝

我认为扩展方法更好: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”,因为您的帖子包含它。

哈士奇WWW

我更喜欢$""var result = $"{info.FirstName} {(!string.IsNullOrEmpty(info.PhonNumber) ? $"({info.PhonNumber})" : "")}";
打开App,查看更多内容
随时随地看视频慕课网APP