c# - 使用内联连接检查 IsNullOrEmpty
问题描述
我有以下内容:
var result = info.FirstName + " " + "(" + info.PhonNumber + ")";
请注意,FirstName 和 PhoneNumber 都是字符串值。
我喜欢做的是如果 info.PhonNumber 为空/空,我不想在 PhoneNumber 周围显示括号。我知道如何使用 IsNullOrEmpty 方法,在这种情况下我需要使用if语句,但是是否有更有效的方法来进行内联验证以检查 info.PhoneNumber 是否为 nullempty,如果是则不连接它?
解决方案
我认为扩展方法更好:
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”,因为您的帖子包含它。
在这里提琴
推荐阅读
- php - 验证 WordPress 上的 textarea 字段
- ruby-on-rails - 简单的 Rails 嵌套关联 where 子句的问题
- javascript - 在动态路由更改的情况下,历史推送 url 不会再次重新初始化组件
- vba - 将 IST 转换为 AEST 的宏
- vba - Excel VBA:自动单击并从网站打开文件
- ruby-on-rails - 在我的 Pundit 政策中使用范围(Rails 5)
- android - 具有自定义背景和三角形的微调器
- css - 跳转到 Visual Studio Code 中的 ID 或类选择器
- autohotkey - AHK 脚本的工具键
- c++ - 唤醒其他线程时 videoInput 设备断开连接