Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 加上「&引用;在字符串中,如果字符串值不是null或空_C#_Linq - Fatal编程技术网

C# 加上「&引用;在字符串中,如果字符串值不是null或空

C# 加上「&引用;在字符串中,如果字符串值不是null或空,c#,linq,C#,Linq,如果字符串不为null或空,我想在3个字符串中添加“|” 前 如果用户名为空,则Phone | Email 如果用户名和电子邮件都是空字符串,则仅包含电话号码 像这样的东西 var userName =string.IsNullOrEmpty(dir.UserName)?"": dir.UserName+ " | "; var userEmail = string.IsNullOrEmpty(dir.UserEmail) ? "" : dir.UserEmail+ " | " ; var use

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

如果用户名为空,则
Phone | Email
如果用户名和电子邮件都是空字符串,则仅包含
电话号码

像这样的东西

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)));

我的想法如下: 将三个字符串存储在数组中后: 1.检查用户名是否是唯一不为null的字符串 -如果是,则只打印它,否则继续2

  • 追加|和Phone(Phone不能为空,因为1。检查它)

  • 如果数组索引2处有一个元素,则附加一个|和电子邮件

  • 完成了
    旁注:这将需要更多的代码行,但它的可读性更高,代码更简单。

    谢谢兄弟,它的工作很好。谢谢你的帮助
    string[] all = {dir.UserName, dir.UserPhoneNumber, dir.UserEmail};
    string result = string.Join(" | ", all.Where(str => !string.IsNullOrEmpty(str)));