2011-08-04 17 views
-1

私はいくつかの文字列とnull値を持つリストXを持っています。私は、テキストボックスに値をバインドするforeachループを繰り返しています。私のリストにnull値があれば、foreachループは終了し、null例外をどのように処理するのかを知る。foreachループ内のNull例外処理

各ループの条件を確認しています。私はlogcally正しいことがありません。

SPList _listObj = web.Lists[new Guid(listID)]; 
      SPListItem item = _listObj.GetItemById(Convert.ToInt32(itemID)); 
      foreach (SPField field in _listObj.Fields) 
      { 
       if (field.Title != Null) 
       { //do some code}} 
+1

あなたが提供するコードは有効なC#コードではありません...何が間違っているのか分かりません –

+0

わかりません。 –

+0

私はxがnullだと思います。 – Shekhar

答えて

4

コードの下に試してみてください。

foreach(var x in Lists.Where(x => x.fiels != null)) 
{ 

} 
0

コードは私にはかなり疑わしいこと。

まず、本当にリストのリストがありますか?もしそうなら、私は想像するあなたにも内側のリストの各要素を反復処理する必要があります。

foreach(List list in Lists) 
{ 
    foreach (var x in list) 
    { 
     if (x.fields != null) 
      // blah 
     else 
      // blah 
    } 
} 

を第二に、しているあなたはLists変数は任意のヌルが含まれていないことを確認してください?おそらくそれがnullであるxが実際だし、それはあなたのnull参照の例外の原因です:提供

foreach(List x in Lists) 
{ 
    if (x != null && x.fields != null) 
     // blah 
    else 
     // blah 
} 
0

コードが正しくありません。 foreachループでNull for Xをチェックしたいと思う。これが論理的に正しいかどうかわからない場合は、ロジックが提供されたコードを超え、実際にどこで使用されているかによって異なります。

私は個人的にforeachループでnullをチェックするのに悪いことはありません。

たとえば、Linqを使用して最初にNull値とNull以外の値を照会することもできます。デザインの選択の問題。

よろしくお願いいたします。

0

リストのリストには?

foreach(string x in listvar){ 
    if(x != null) 
     // do something 
} 

実際には文字列はnullか、空白になっていますか?それは違いです。

foreach(string x in listvar){ 
    if(x != "") 
     // do something 
} 

私はこの問題は、ループ内のオブジェクトが存在しないとしてnullエラーをポップになり、foreachループのあなたの間違った実装であることを疑います。

0

は、なぜあなたは、ヌル・合体演算子

foreach (var item in feeList ?? new List<FeeBusiness>()) 
    { 
      // your code 
    } 

でこのようにそれを使用していません?演算子はヌル合体演算子と呼ばれます。オペランドがヌルでない場合は、左側のオペランドを返します。それ以外の場合は、右側のオペランドを返します。

0
string delimitedvalues = null;//"11,22,33"; 
foreach(var str in (delimitedvalues?? string.Empty).split(',')) 
{ 
    string testvalue = "Test Value" + str; 
} 

上記の構成が役立つことを望む!