如何在.Net2.0中过滤一个通用列表?

3

我正在使用asp.net 2.0和C#。

我有一个泛型列表,

List<EmployeeInfo> empInfoList; 

这个列表包含员工信息。现在,我想使用文本框中的值“EmploeeName”来筛选此列表。

我必须使用员工姓名来过滤此列表,并再次将其绑定到GridView上。

我不确定如何做到这一点。请帮忙。

提前感谢您的帮助。

1个回答

6

由于您正在使用 .Net2.0,因此无法使用LINQ,但是您可以使用委托和FindAll方法:

string criteria = EmployeeName.Text.Trim().ToLower();
List<EmployeeInfo> resultList = empInfoList.FindAll(
   delegate(EmployeeInfo p)
   {
      return p.EmployeeName.ToLower().Contains(criteria);
   }
);

我认为除非您从与FindAll相同行的断点进入委托,否则不会触发委托内的中断。我不明白为什么您会得到空记录,因为FindAll只返回匹配的记录... 您能否发布一些您尝试过的代码? - djdd87
在设置DataSource之前,放置一个断点并查看resultList中是否有任何项为空,然后再设置DataSource。 - djdd87
请尝试我添加的代码,并告诉我它是否仍然执行相同的操作,或者是否可以在不使用FindAll方法的情况下正常工作。 - djdd87
实际上,GridView有预定义的模板,而数据集包含更多列,这会导致错误。但是,这个名为EmployeeInfo的列表返回了一个正确的列名和正确的格式。这就是我想继续使用该列表的原因。 - Rahul
绝对完美..非常感谢您的时间和努力.. :) 再次感谢 :) :) - Rahul
显示剩余10条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接