3

全部,

考虑以下代码:

string message = "abc;def;ghi";
string[] msgs = message.Split(';');
string temp = msg[2] ? msg[2] : "Failed";

消息变量来自服务器并且具有不同的长度。我需要对其进行解析,以便如果该值不存在,则结果应为“失败”。

有没有简单的方法可以做到这一点?

现在这个构造给出了编译器错误:“无法将字符串转换为布尔值”。

谢谢你。

[编辑]

我猜有些人会逐字阅读这封信。;-) 我需要检查“msg”数组的任意元素是否存在,而不仅仅是 msg[2]。我可以有类似的东西:

string message = "abc;def";
str[] msg = message.Split( ';' );
string temp = msg[3] ? msg[3] : "Failed";

在接下来的消息处理中。

[/编辑]

4

2 回答 2

6

也许你想要:

string temp = msgs.Length > 2 ? msgs[2] : "Failed";

编辑:

对于检查任何元素,同样的工作:

int index = 42;
string temp = msgs.Length > index ? msgs[index] : "Failed";
于 2012-08-14T19:14:33.760 回答
1

与 Javascript 不同,C# 不允许您将任意表达式用作布尔值。

你正在尝试写

msg.Length >= 3 ? msg[2] : "Failed"
于 2012-08-14T19:14:34.883 回答