检查数组成员是否存在

时间:2012-08-14 19:13:31

标签: c# arrays

所有

请考虑以下代码:

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

在下一个消息处理中。

[/编辑]

2 个答案:

答案 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"