Mega Code Archive

 
Categories / C# / Collections Data Structure
 

Search Test

using System; using System.Collections.ObjectModel; using System.Collections.Generic; using System.Text; using System.Runtime.Serialization; public class Customer : System.IComparable {     private int _id;     private string _name;     private string _rating;     private static SortOrder _order;     public enum SortOrder {         Ascending = 0,         Descending = 1     }     public Customer(int id, string name)         : this(id, name, "Other") {     }     public Customer(int id, string name, string rating) {         this._id = id;         this._name = name;         this._rating = rating;     }     public int Id {         get { return this._id; }         set { this._id = value; }     }     public string Name {         get { return this._name; }         set { this._name = value; }     }     public string Rating {         get { return this._rating; }         set { this._rating = value; }     }     public static SortOrder Order {         get { return _order; }         set { _order = value; }     }     public override bool Equals(Object obj) {         bool retVal = false;         if (obj != null) {             Customer custObj = (Customer)obj;             if ((custObj.Id == this.Id) &&                 (custObj.Name.Equals(this.Name) &&                 (custObj.Rating.Equals(this.Rating))))                 retVal = true;         }         return retVal;     }     public override string ToString() {         return this._id + ": " + this._name;     }     public int CompareTo(Object obj) {         switch (_order) {             case SortOrder.Ascending:                 return this.Name.CompareTo(((Customer)obj).Name);             case SortOrder.Descending:                 return (((Customer)obj).Name).CompareTo(this.Name);             default:                 return this.Name.CompareTo(((Customer)obj).Name);         }     } } public class CollectionTest {     public static void Main() {         List<Customer> collCustList = new List<Customer>();         collCustList.Add(new Customer(99, "H", "P"));         collCustList.Add(new Customer(77, "B", "G"));         collCustList.Add(new Customer(55, "B", "G"));         collCustList.Add(new Customer(44, "R", "O"));         collCustList.Add(new Customer(22, "H", "D"));         collCustList.Add(new Customer(88, "B", "P"));         collCustList.Add(new Customer(11, "L", "O"));         int targetId = 22;         Customer cust22 = collCustList.Find(delegate(Customer cust) {             return cust.Id == targetId;         });         Console.Out.WriteLine("Find Customer Id 22: {0}", cust22.Name);         int custIndex = collCustList.FindIndex(delegate(Customer cust) {             return cust.Id == targetId;         });         Console.Out.WriteLine("Find Customer Id 22 Index: {0}", custIndex);         List<Customer> goldCustomers = collCustList.FindAll(delegate(Customer cust) {             return cust.Rating.Equals("Gold");         });         foreach (Customer cust in goldCustomers)             Console.Out.WriteLine("Gold Customer Found: {0}", cust);         Customer platCust = collCustList.FindLast(delegate(Customer cust) {             return cust.Rating.Equals("Platinum");         });         Console.Out.WriteLine("Find Last Platinum Customer: {0}", platCust);         IEnumerable<Customer> rangeCust = collCustList.GetRange(3, 3);         foreach (Customer cust in rangeCust)             Console.Out.WriteLine("Range Customer: {0}", cust);     } }