プロが教えるわが家の防犯対策術!

C#で配列が空かどうかを判定するにはどうしたらようでしょうか?
VB.NETではIsNothingで出来るのですが、C#の方法が分かりません。

-- C# ---
int[] a={0,1,2};
int[] b;

//bが空なのを判定したい

--VB.NET---
Dim a() As Int16 = {0, 1, 2}
Dim b() As Int16

MsgBox(IsNothing(a)) 'Falseを返す
MsgBox(IsNothing(b)) 'Trueを返す
----
VS.NET2003/Windows2000Pro

A 回答 (1件)

System.ArrayクラスのLengthの値で判断できると思います。



手元にコンパイラが無いのでテストはできませんが、
以下のコードは、エラーになるんじゃないでしょうか。
初期化されていてない変数へのアクセスとかで・・・


int[] a={0,1,2};
int[] b;

if(b.length == 0){// この行でコンパイルエラー
// 配列が空
}


=====


nullで初期化するとif分で例外が発生します。

int[] a={0,1,2};
int[] b = null;

if(b.length == 0){// この行で例外が発生
// 配列が空
}


=====


int[] a={0,1,2};
int[] b = {};

if(b.length == 0){// 真となる
// 配列が空
}
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>nullで初期化すると

実践では動的配列にWebサービスのメソッドを代入するのだけど、データがない場合の判定をしたかったのです。
なるほど、nullが代入されるのですね。

if (b == NULL)
で行けました。

お礼日時:2003/07/28 20:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています