我正在从包含空值的数组中打印所有非空值。我只想打印非null值
string a = "welcome";
var rm = new string [] {null,"hai",null,"15"};
Console.WriteLine("{0}",!String.IsNullOrEmpty(rm[0])? a
:!String.IsNullOrEmpty(rm[1]) ? a +":"+ rm[1] :
!String.IsNullOrEmpty(rm[2]) ? a +":"+ rm[1]+ ":"+rm[2] : a +":"+ rm[1]+
":"+rm[2]+":"+rm[3] );
实际输出:welcome:hai
预期产量:welcome:hai:15
答案 0 :(得分:2)
您可以使用Where
方法来获得和IEnumerable
代表所有非空和非空值。
您的数组称为rm
,因此您可以像这样获得IEnumerable
:
IEnumerable<string> nonNullNonEmptyValues = rm.Where(e => !String.IsNullOrEmpty(e));
如果您希望像示例中那样加入它们,则可以这样使用String.Join
(@AgentFire的注释中有错误,因为此方法实际上首先使用分隔符,然后是值):
String joined = String.Join(":", nonNullNonEmptyValues);
答案 1 :(得分:1)
如果要使用循环,它将为您提供解决方案:
string a = "welcome";
var rm = new string [] {null,"hai",null,"15"};
for(int i = 0; i < rm.Length; i++)
{
if(!string.IsNullOrWhitespace(rm[i])
a += ":" + rm[i];
}
Console.WriteLine(a);