如果字符串值不为null或为空,则在字符串中添加“ |”

时间:2019-03-26 16:23:03

标签: c# linq

如果字符串不为null或为空,我想在3个字符串中添加“ |” 例如。

-> UserName | Phone | Email

如果UserName为null,则Phone | Email 如果UserName和Email均为空字符串,则仅包含PhoneNumber

类似这样的东西

var userName =string.IsNullOrEmpty(dir.UserName)?"": dir.UserName+ " | ";
var userEmail = string.IsNullOrEmpty(dir.UserEmail) ? "" : dir.UserEmail+ " | " ;
var userphone = string.IsNullOrEmpty(dir.UserPhoneNumber) ? "" :  dir.UserPhoneNumber;
var disply = userName + userEmail  + userphone;

linq可以用更少的代码来做到吗?

2 个答案:

答案 0 :(得分:11)

尝试一下:

string[] all = {dir.UserName, dir.UserPhoneNumber, dir.UserEmail};
string result = string.Join(" | ", all.Where(str => !string.IsNullOrEmpty(str)));

答案 1 :(得分:0)

我的想法是: 将三个字符串存储在数组中之后: 1.检查UserName是否为唯一的String而不为null   -如果只是打印,则继续进行2。

  1. 追加|和电话(从1.开始检查,电话不能为空)

  2. 如果数组索引2处有一个元素,请添加|。和电子邮件。

  3. 完成!

旁注:这将花费更多的代码行,但它将使代码更具可读性和简单性。

相关问题