目前我有以下三元运算:
string value = "";
value = Company == null ? Name : Name + "," + Company;
一切都很好。但是,我想检查 Company 是 null 还是“”。
有没有办法使用三元语句来做到这一点?
目前我有以下三元运算:
string value = "";
value = Company == null ? Name : Name + "," + Company;
一切都很好。但是,我想检查 Company 是 null 还是“”。
有没有办法使用三元语句来做到这一点?
用于string.IsNullOrEmpty
检查 null 和空字符串。
value = string.IsNullOrEmpty(Company) ? Name : Name + "," + Company;
如果您使用的是 .Net 框架 4.0 或更高版本,并且您也想将空格视为空字符串,那么您可以使用string.IsNullOrWhiteSpace
value = string.IsNullOrWhiteSpace(Company) ? Name : Name + "," + Company;
当然你也可以使用这个:
value = (Company == null || Company == "") ? Name : Name + "," + Company;
只是为了澄清您可以使用更多的完整语句
value = string.IsNullOrEmpty(Company) ? Name : Name + "," + Company;
关于是否在 SO 上使用 IsNullOrEmpty 与 IsNullOrWhitespace 存在很大的争论: string.IsNullOrEmpty(string) vs. string.IsNullOrWhiteSpace(string)
我最喜欢的评论是:
就性能而言,IsNullOrWhiteSpace 并不理想但很好。方法调用将导致小的性能损失。此外,如果您不使用 Unicode 数据,IsWhiteSpace 方法本身有一些可以删除的间接方法。与往常一样,过早的优化可能是邪恶的,但它也很有趣。
请参阅此处的参考
如果您不想使用字符串函数,请执行
value= (Company==null || Company=="")?Name:Name + "," + Company;
它可能会稍微快一点。如果您知道 Company 更可能是 null 还是 "",请将最有可能的一个放在第一位,它会更快,因为第二个不会被评估。