• ベストアンサー

C#で配列が空かを判定するには?

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

質問者が選んだベストアンサー

  • ベストアンサー
  • darksky
  • ベストアンサー率66% (38/57)
回答No.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){ // 真となる // 配列が空 }

todo36
質問者

お礼

回答ありがとうございます。 >nullで初期化すると 実践では動的配列にWebサービスのメソッドを代入するのだけど、データがない場合の判定をしたかったのです。 なるほど、nullが代入されるのですね。 if (b == NULL) で行けました。

すると、全ての回答が全文表示されます。

関連するQ&A