如果我有5个字符串变量,并且0到5之间是null或空是否有一个简单/简单的方法返回第一个非null或空?我使用的是.NET 3.5
dan*_*dan 31
var myString = new string[]{first, second, third, fouth, fifth}
.FirstOrDefault(s => !string.IsNullOrEmpty(s)) ?? "";
//if myString == "", then none of the strings contained a value
Run Code Online (Sandbox Code Playgroud)
编辑:删除Where(),将谓词放在FirstOrDefault()中,谢谢Yuriy
Kon*_*lph 18
定义扩展方法:
static string Or(this string value, string alternative) {
return string.IsNullOrEmpty(value) ? alternative : value;
}
Run Code Online (Sandbox Code Playgroud)
现在您可以说以下内容:
string result = str1.Or(str2).Or(str3).Or(str4) …
Run Code Online (Sandbox Code Playgroud)
private static string FirstNonEmptyString(params string[] values)
{
return values.FirstOrDefault(x => !string.IsNullOrEmpty(x));
}
Run Code Online (Sandbox Code Playgroud)
这样称呼:
Console.WriteLine(FirstNonEmptyString(one, two, three, four, five) );
Run Code Online (Sandbox Code Playgroud)
如果您有固定数量的变量,我建议使用空合并运算符来检查空值。这是迄今为止最简单的选择。
var result = s1 ?? s2 ?? s3 ?? s4 ?? s5 ?? "";
Run Code Online (Sandbox Code Playgroud)
我认为没有必要再为此做一个单独的函数,因为它已经有一个语言结构。
编辑:空字符串被认为是非空的,因此如果其中一个为空,它将返回它。
| 归档时间: |
|
| 查看次数: |
8621 次 |
| 最近记录: |