2012-03-16 86 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 2012-03-16 23:39:51

+2

现在会出现什么问题? – 2012-03-16 23:40:12

+1

心灵调试:你的列表中至少有一个对象具有'null''Lname'。 – Jon 2012-03-16 23:47:17

回答

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); 
     } 
     } 
    }