2012-03-16 3 views
1

Я был в этом часами, вылил несколько вопросов, которые похожи. Что мне нужно сделать, чтобы этот код работал?Запрос 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

Психическая отладка: в вашем списке есть хотя бы один объект, который имеет «null» 'Lname'. – 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); 
     } 
     } 
    } 
Смежные вопросы