三元语句空或空白

时间:2013-11-11 19:46:07

标签: c#

目前我有以下三元操作:

string value = "";

value = Company == null ? Name : Name + "," + Company;

一切都很好。但是,我想检查公司是否为空或“”。

有没有办法使用三元语句来做到这一点?

4 个答案:

答案 0 :(得分:10)

使用string.IsNullOrEmpty检查null和空字符串。

value = string.IsNullOrEmpty(Company) ? Name : Name + "," + Company;

如果您使用.Net framework 4.0或更高版本,并且您想将空格也视为空字符串,那么您可以使用string.IsNullOrWhiteSpace

答案 1 :(得分:9)

使用此String.IsNullOrWhiteSpace

value = string.IsNullOrWhiteSpace(Company) ? Name : Name + "," + Company;

当然你也可以用这个:

value = (Company == null || Company == "") ? Name : Name + "," + Company;

只是为了澄清您可以使用更多comples语句

答案 2 :(得分:3)

使用IsNullOrEmpty

value = string.IsNullOrEmpty(Company) ? Name : Name + "," + Company;

关于是否在SO上使用IsNullOrEmpty和IsNullOrWhitespace存在很大争议: string.IsNullOrEmpty(string) vs. string.IsNullOrWhiteSpace(string)

我最喜欢的评论是:

  

对于性能,IsNullOrWhiteSpace并不理想但是很好。方法调用将导致较小的性能损失。此外,IsWhiteSpace方法本身具有一些可以在不使用Unicode数据时删除的间接。与往常一样,过早优化可能是邪恶的,但它也很有趣。

请参阅reference here

答案 3 :(得分:1)

如果您不想使用字符串函数,只需执行

value= (Company==null || Company=="")?Name:Name + "," + Company;

它可能会稍快一些。如果你知道公司是否更有可能是null或“”,那么最有可能将其放在第一位,并且它会更快,因为第二种不会被评估。