More Related Content
More from LearningTech (20)
Kim 2015.03.06 Weekly Report
- 2. 本周所學
C#
Inside a C# Program
Main() and Command-Line Arguments (C# Programming Guide)
Types (C# Programming Guide)
Arrays (C# Programming Guide)
Strings (C# Programming Guide)
Statements, Expressions, and Operators (C# Programming Guide)
Classes and Structs (C# Programming Guide)
Properties (C# Programming Guide)
Interfaces (C# Programming Guide)
Indexers (C# Programming Guide)
Enumeration Types (C# Programming Guide)
Delegates (C# Programming Guide)
Generics (C# Programming Guide)
Iterators (C# and Visual Basic)
LINQ Query Expressions (C# Programming Guide)
Lambda Expressions (C# Programming Guide)
- 3. LinQPad
LinqPad : Chapter 8
string names = { "Tom", "Dick", "Harry" }
IEnumerable<string> query = names
.Where (n => n.Contains ("a"))
.OrderBy (n => n.Length)
.Select (n => n.ToUpper());
from n in new[] { "Tom", "Dick", "Harry" }
where n.Contains ("a")
select n
- 4. Lambda Expression
首先定義一個單參數的 delegate
delegate int Del(int x);
以傳統 delegate 的語法來建構 delegate
Del a = delegate(int x) { return x + 2; };
去掉 delegate 改成 Lambda 表示式
Del a = (int x) => { return x + 2; };
由於大括號裡只有一句陳述式,而且是一個 return 的陳述式,所以可以省略大括號跟 return
Del a = (int x) => x + 2;
在 delegate 已經有定義輸入參數的型別,所以在小括號裡的型別可以省略
Del a = (x) => x + 2;
由於小括號裡面只有一個輸入參數,所以可以再進一步省略小括號
Del a = x => x + 2;