日期:2014-05-17  浏览次数:21226 次

List的 Select()使用方法
用List存储对象,代码如下:

IList<Student> studentList = new List<Student>();
for(int i=0;i<1000;i++)
{
   Student student = new Student();
    //赋值
    studentList.Add(student);
}


现在需要从studentList中查询符合条件的对象,Student中有个ClassName字段,需要从studentList中查询ClassName为“高一(3)班”的所有学生,一般是这样做的:
foreach(Student student in studentList)
{
  if(student.ClassName=="高一(3)班")
    {
      newList.Add(student);
      continue;
      }
}
但这种方法比较笨重,一旦数据量大,循环次数会非常多。百度了一下,貌似可以使用Select(),但都说不太详细,请问有没有什么较好的算法可以实现?

------解决方案--------------------
newList = studentList.Where(p => p.ClassName.Contains("高一(3)班")).ToList<Student>();
------解决方案--------------------
来个低版本的:

                  List<Student> stu = studentList.FindAll(delegate(Student student)
                  {
                      if (student.Name.Equals("高一(3)班"))
                      {
                          return true;
                      }
                      else
                      {
                          return false;