C Sharp Lists | |||
| |||
identical objects. In the past,without adequate support from programming languages,we found ourselves writing a lot of searching and sorting code,and that may have put you off using lists in favour of arrays. All that has changed with C# 2.0 - its implementation of a list makes handling such lists remarkably easy public class Person { public int age; public string name; public Person(int age,string name) { this.age = age; this.name = name; } } We can create a list of Person objects and add six people like so: List<Person> people = new List<Person>(); people.Add(new Person(50,"Fred")); people.Add(new Person(30,"John")); people.Add(new Person(26,"Andrew")); people.Add(new Person(24,"Xavier")); people.Add(new Person(5,"Mark")); people.Add(new Person(6,"Cameron")); C# 2.0's list mechanism provides us with a number of useful methods. Personally,I find ForEach,FindAll and Sort to be very useful. ForEach allows us access to each item in the list. FindAll allows us to search for objects in the list that match a specific condition. Sort allows us to sort the objects in the list. The following code demonstrates how we might use each of these methods: Console.WriteLine("Unsorted list"); people.ForEach(delegate(Person p) { Console.WriteLine(String.Format("{0} {1}",p.age,p.name)); }); List<Person> young = people.FindAll(delegate(Person p) { return p.age < 25; }); Console.WriteLine("Age is less than 25"); young.ForEach(delegate(Person p) { Console.WriteLine(String.Format("{0} {1}",p.age,p.name)); }); Console.WriteLine("Sorted list,by name"); people.Sort(delegate(Person p1,Person p2) { return p1.name.CompareTo(p2.name); }); people.ForEach(delegate(Person p) { Console.WriteLine(String.Format("{0} {1}",p.age,p.name)); }); people.Sort(delegate(Person p1,Person p2) { return p1.age.CompareTo(p2.age); }); Console.WriteLine("Sorted list,by age"); people.ForEach(delegate(Person p) { Console.WriteLine(String.Format("{0} {1}",p.age,p.name)); }); And here is the output that we should expect: Unsorted list 50 Fred 30 John 26 Andrew 24 Xavier 5 Mark 6 Cameron Age is less than 25 24 Xavier 5 Mark 6 Cameron Sorted list,by name 26 Andrew 6 Cameron 50 Fred 30 John 5 Mark 24 Xavier Sorted list,by age 5 Mark 6 Cameron 24 Xavier 26 Andrew 30 John 50 Fred Tags: C# C# List List | |||
| |||
| |||
Login for comment |