3

全て、

次のコードを検討してください。

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

メッセージ変数はサーバーから送信されており、長さが異なります。値が存在しない場合、結果が「失敗」になるように解析する必要があります。

それを行う簡単な方法はありますか?

現在、この構成により、コンパイラエラーが発生します:「文字列をboolに変換できません」。

ありがとうございました。

[編集]

この手紙を一文字ずつ読んでいる人もいると思います。;-) msg​​ [2]だけでなく、「msg」配列の任意の要素が存在するかどうかを確認する必要があります。私は次のようなものを持つことができます:

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 に答える