如果字符串不为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可以用更少的代码来做到吗?
答案 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.开始检查,电话不能为空)
如果数组索引2处有一个元素,请添加|。和电子邮件。
旁注:这将花费更多的代码行,但它将使代码更具可读性和简单性。