目前我有以下三元操作:
string value = "";
value = Company == null ? Name : Name + "," + Company;
一切都很好。但是,我想检查公司是否为空或“”。
有没有办法使用三元语句来做到这一点?
答案 0 :(得分:10)
使用string.IsNullOrEmpty
检查null和空字符串。
value = string.IsNullOrEmpty(Company) ? Name : Name + "," + Company;
如果您使用.Net framework 4.0或更高版本,并且您想将空格也视为空字符串,那么您可以使用string.IsNullOrWhiteSpace
答案 1 :(得分:9)
value = string.IsNullOrWhiteSpace(Company) ? Name : Name + "," + Company;
当然你也可以用这个:
value = (Company == null || Company == "") ? Name : Name + "," + Company;
只是为了澄清您可以使用更多comples语句
答案 2 :(得分:3)
value = string.IsNullOrEmpty(Company) ? Name : Name + "," + Company;
关于是否在SO上使用IsNullOrEmpty和IsNullOrWhitespace存在很大争议: string.IsNullOrEmpty(string) vs. string.IsNullOrWhiteSpace(string)
我最喜欢的评论是:
对于性能,IsNullOrWhiteSpace并不理想但是很好。方法调用将导致较小的性能损失。此外,IsWhiteSpace方法本身具有一些可以在不使用Unicode数据时删除的间接。与往常一样,过早优化可能是邪恶的,但它也很有趣。
答案 3 :(得分:1)
如果您不想使用字符串函数,只需执行
value= (Company==null || Company=="")?Name:Name + "," + Company;
它可能会稍快一些。如果你知道公司是否更有可能是null或“”,那么最有可能将其放在第一位,并且它会更快,因为第二种不会被评估。