-1

オブジェクトを返すIEnumerableメソッドがありますが、(エラー時に)メソッドがnull値のを返すことがありますIEnumerable

メソッドは次のようになります。

IEnumerable<string> function(String param1, String param2)
{
    IEnumerable s = null;

    s = (some query over here);

    return s;
}

このメソッドを。で呼び出すとparam2、関数は内部的に失敗し、現時点ではnullであるsを返します。

だから、これを検出するために私は使用しました、

 IEnumerable<string> a = function(1,0);
 if (a.count<string> > 0) //not working
 if (a == 0)  //not working.

IEnumerable他の操作の前に使用してnullかどうかを確認する正しい方法は何ですか?

4

3 に答える 3

3

検索結果がnullの場合、空の列挙型を返すことができます。

IEnumerable<string> function(String param1, String param2)
  {
         IEnumerable s = null;

         s = (some query over here);

         return s ?? Enumerable.Empty<string>();
  }
于 2012-08-29T10:18:25.327 に答える
1

あなたs = (some query over here);はnullを返しています。そのため、例外が発生します。

後でチェックする必要があります:

if(a != null)

if(a.Count() > 0)

次のように両方を組み合わせることができます。

if(a!=null && a.Count() >0)
{
 // do your work
}
于 2012-08-29T10:13:00.380 に答える
1

null要素のない列挙と同じではありません。したがって、のチェックはif(a.count<string> > 0)失敗します。(実際にaは、取得できる要素の数が含まれているインスタンスを指していませんCount。)

また、null整数値と同じではありません0。したがって、チェックもif(a == 0)失敗します。

ただし、nullはC#のキーワードであり、次のように比較できます。

if (a == null)
于 2012-08-29T10:18:15.900 に答える