using System.Collections.Generic;
return ((DateTime.Now - DOB).Days / 365);
public Student(string firstName, string lastName, DateTime dob)
public override string ToString(){
return string.Format("{0} {1}", this.FirstName, this.LastName);
public static void Main()
var students = GetSampleStudentList().OrderBy(x => x.DOB);
foreach (var s in students)
Console.WriteLine(string.Format("Name: {0}, Age: {1}", s, s.Age));
Console.WriteLine(string.Format("Name: {0}, Exist: {1}", "john", FirstNameExists(students.ToList(), "john")));
Console.WriteLine(string.Format("Name: {0}, Exist: {1}", "Ted", FirstNameExists(students.ToList(), "Ted")));
var result = students.GroupBy(x => x.FirstName)
foreach (var s in result)
Console.WriteLine(string.Format("Name: {0}, Qtd: {1}", s.FirstName, s.QtdStudents.ToString()));
public static bool FirstNameExists(List<Student> students, string name)
return students.Where(x => x.FirstName.ToLower() == name.ToLower()).Count() > 0;
private static List<Student> GetSampleStudentList()
List<Student> students = new List<Student>();
students.Add(new Student("John", "Smith", new DateTime(1978, 4, 16)));
students.Add(new Student("Jack", "Smith", new DateTime(1978, 3, 01)));
students.Add(new Student("John", "Rambo", new DateTime(1977, 3, 16)));
students.Add(new Student("Jack", "Johnson", new DateTime(1981, 12, 13)));
students.Add(new Student("John", "Jackson", new DateTime(1980, 1, 1)));
students.Add(new Student("David", "Carson", new DateTime(1993, 5, 6)));
students.Add(new Student("Steve", "Stephenson", new DateTime(1979, 7, 8)));