C#有很多特性,但是平常工作的时候用到的机会不多,今天有空试着用了一下,写了段代码,里面用到了索引器、委托、扩展方法、泛型、匿名类型、匿名方法、对象集合初始化器,顿时感觉很高端有木有~~~
public class User { public int UserID { get; set; } public string UserName { get; set; } public int Age { get; set; } } public class MyList<T> { private T[] data; public MyList() { data = new T[0]; } public int Count { get { return data.Length; } } public void Add(T t) { T[] temp = data; data = new T[temp.Length + 1]; temp.CopyTo(data, 0); data[data.Length - 1] = t; } public T this[int index] { get { return data[index]; } set { data[index] = value; } } } public static class Schema { public delegate bool Condtion<T>(T t); public static MyList<T> Search<T>(this MyList<T> myList, Condtion<T> condtion) { MyList<T> result = new MyList<T>(); for (int i = 0; i < myList.Count; i++) { if (condtion(myList[i])) { result.Add(myList[i]); } } return result; } } class Program { static void Main(string[] args) { MyList<User> us = new MyList<User>(); for (int i = 1; i <= 100; i++) { us.Add(new User() { UserID = i, UserName = "name" + i, Age = i }); } var result = us.Search<User>(delegate(User u) { return u.Age > 80; }); Console.ReadLine(); } }