// Search
///////////////////////////////////
List<Student> student1 = this.StudentList.FindAll(delegate(Student s) { return s.name.Contains("xxx"); });
// or
List<Student> student2 = this.StudentList.FindAll(o => o.name.Contains("xxx"));
// Sort
                ///////////////////////////////////
                student2.Sort(
                            delegate(Student s1, Student s2)
                            {
                                return s1.name.CompareTo(s2.name);
                            });

                // or
                student2.Sort((x, y) => string.Compare(x.name, y.name));
                // student2.Sort((x, y) => x.name.CompareTo(y.score));

                // or
                student2.OrderBy( x => x.name); 
                student2.OrderByDescending(x => x.name);