2012-03-16 11 views
1

私はこれを何時間も続けていて、似たような複数の質問を重ねました。このコードを動作させるにはどうすればよいですか?あなたはどのようなエラーをwhere句で変数を指定したLINQクエリ

public void DoSomething(List<TheObj> objs, string lnameStr) 
    { 
     var pQuery = (from o in objs 
         where o.Lname.Contains(lnameStr) 
         select o).ToList(); 

     foreach (var theObj in pQuery) 
     { 
      Trace.WriteLine(theObj.Fname); 
     } 
    } 

おかげ

+3

を得ていますか?それは何をすべきか、実際に何をしているのですか? – Diego

+2

今は何が間違っていますか? –

+1

精神的なデバッグ:あなたのリストには、 'ヌル' 'Lname'を持つオブジェクトが少なくとも1つあります。 – Jon

答えて

2
public void DoSomething(List<TheObj> objs, string lnameStr) 
    { 
     if(objs != null && !string.IsNullOrEmpty(lnameStr)) 
     { 
     var pQuery = (from o in objs 
         where !string.IsNullOrEmpty(p.Lname) && 
          o.Lname.Contains(lnameStr) 
         select o).ToList(); 

     foreach (var theObj in pQuery) 
     { 
      Trace.WriteLine(theObj.Fname); 
     } 
     } 
    }