所有
请考虑以下代码:
string message = "abc;def;ghi";
string[] msgs = message.Split(';');
string temp = msg[2] ? msg[2] : "Failed";
消息变量来自服务器,长度不同。我需要解析它,以便如果该值不存在,结果应为“失败”。
有一种简单的方法吗?
现在这个构造给出了comppiler错误:“无法将字符串转换为bool”。
谢谢。
[编辑]
我想有些人会逐字念读这封信。 ;-) 我需要检查“msg”数组的任意元素是否存在,而不仅仅是msg [2]。 我可以有类似的东西:
string message = "abc;def";
str[] msg = message.Split( ';' );
string temp = msg[3] ? msg[3] : "Failed";
在下一个消息处理中。
[/编辑]
答案 0 :(得分:6)
也许你想要:
string temp = msgs.Length > 2 ? msgs[2] : "Failed";
编辑:
为了检查任何元素,同样的事情是有效的:
int index = 42;
string temp = msgs.Length > index ? msgs[index] : "Failed";
答案 1 :(得分:1)
与Javascript不同,C#不允许您将任意表达式用作布尔值。
你正在尝试写
msg.Length >= 3 ? msg[2] : "Failed"