Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查数组成员是否存在_C#_Arrays - Fatal编程技术网

C# 检查数组成员是否存在

C# 检查数组成员是否存在,c#,arrays,C#,Arrays,全部, 考虑以下代码: string message = "abc;def;ghi"; string[] msgs = message.Split(';'); string temp = msg[2] ? msg[2] : "Failed"; 消息变量来自服务器,长度不同。我需要对其进行解析,以便如果该值不存在,则结果应为“失败” 有没有一个简单的方法 现在这个构造给出了编译器错误:“无法将字符串转换为bool” 多谢各位 [编辑] 我想有些人会一封一封地读这封信 我需要检查是否存在“msg”

全部,

考虑以下代码:

string message = "abc;def;ghi";
string[] msgs = message.Split(';');
string temp = msg[2] ? msg[2] : "Failed";
消息变量来自服务器,长度不同。我需要对其进行解析,以便如果该值不存在,则结果应为“失败”

有没有一个简单的方法

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

多谢各位

[编辑]

我想有些人会一封一封地读这封信 我需要检查是否存在“msg”数组的任意元素,而不仅仅是msg[2]。 我可以吃一些像:

string message = "abc;def";
str[] msg = message.Split( ';' );
string temp = msg[3] ? msg[3] : "Failed";
在下一个消息处理中

[/EDIT]

也许您想要:

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

编辑:

对于检查任何元素,都可以使用相同的方法:

int index = 42;
string temp = msgs.Length > index ? msgs[index] : "Failed";
与Javascript不同,C#不允许将任意表达式用作布尔值

你在试着写作

msg.Length >= 3 ? msg[2] : "Failed"

x中?y:z
表达式
x
必须计算为
bool
-类型,就像在
if(x){..}
中一样。这就是编译器错误所说的。另外,与JavaScript(因为它是为了比较而提出的)不同,
arr[i]
,其中
i
超出了范围,并不会简单地导致
未定义的
:)抱歉,我更正了这个问题。我想问的是:检查数组中第n个元素的存在性。不是真的。如果我想检查数组的第n个元素是否存在,它将不会有帮助。