-
作为委托的lambda表达式
- 从匿名函数到最简lambda表达式的演化
Func<string, int> returnLength = delegate(string text) { return text.Length; };//匿名函数
returnLength = (string text) => { return text.Length; };//转换成lambda表达式
returnLength = (string text) => text.Length;//去掉花括号和return;
returnLength = (text) => text.Length;//让编译器自己推断类型;
returnLength = text => text.Length; //去掉不必要的括号
-
使用List<T>和事件的简单例子
- 列表的过滤排序和操作
class Film
{
public string Name { get; set; }
public int Year { get; set; }
}
void Test()
{
var films = new List<Film>
{
new Film{Name="Jaws",Year=1975},
new Film{Name="Singing in the Rain",Year=1952},
new Film{Name="Some like it Hot",Year=1959},
new Film{Name="The Wizard of Oz",Year=1939},
new Film{Name="It's a beautiful life",Year=1946},
new Film{Name="American Beauty",Year=1999},
new Film{Name="High Fidelity",Year=2000},
new Film{Name="The Usual Suspects",Year=1995}
};
Action<Film> print = film => Console.WriteLine("Name={0}, Year={1}", film.Name, film.Year);
films.ForEach(print);
films.FindAll(film => film.Year < 1960).ForEach(print);
films.Sort((f1, f2) => f1.Name.CompareTo(f2.Name));
films.ForEach(print);
}