c# - 如果字符串值不为 null 或为空,则在字符串中添加 "| "

标签 c# linq

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

-> UserName | Phone | Email

如果 UserName 为 null 那么 Phone |邮箱 如果 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来完成。

最佳答案

试试这个:

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

关于c# - 如果字符串值不为 null 或为空,则在字符串中添加 "| ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55361892/

相关文章:

c# - 不使用 lambda 表达式进行断言时 NUnit 测试失败

c# - ASP.NET 中的 die() 或 exit() 功能

c# - 编写此 linq 查询的更好方法是什么?

c# - LINQ join 语句问题

c# - 在 LINQ 中转换 OrderBy Case 语句

c# - 为什么 string interned 但有不同的引用?

c# - AsyncAwait 导致意外的方法行为,如果从构造函数调用,方法在错误的线程中运行

c# - Asp.Net 尝试获取 ClientID

LINQ - if 条件

c# - 搜索查询 IQueryable<> MVC