var result = new List<int>(); //传统写法 foreach (var x in numbers) { if (x % 2 == 0) result.Add(x * 2); } //函数式编程写法 var result = numbers.Where(x => x % 2 == 0) .Select(x => x * 2) .ToList();
var numbers1 = Enumerable.Range(1, 5); var numbers2 = Enumerable.Range(1, 5); var divisibleByFive = numbers1.MyWhere(x => x % 2 == 0).Dump(); var PowersOfThree = numbers1.MyTransform(x => x * x * x).Dump(); MyLinq.MyCombine(numbers1,numbers2).Dump();
publicsealedclassColor { publicbyte Red { get; } publicbyte Green { get; } publicbyte Blue { get; } privateColor(byte red, byte green, byte blue) { Red = red; Green = green; Blue = blue; } publicclassBuilder { privatebyte _red; privatebyte _green; privatebyte _blue; public Builder Red(byte red) { _red = red; returnthis; } public Builder Blue(byte blue) { _blue = blue; returnthis; }
public Builder Green(byte green) { _green = green; returnthis; } public Color Create() { returnnew Color(_red, _green, _blue); } } } var c1 = new Color.Builder().Blue(1).Red(5).Create(); var c2 = new Color.Builder().Blue(5).Create();
Func<int, int> toFourthPower = x => x * x * x * x; Func<int, int> makeNegative = x => -1 * x; toFourthPower(makeNegative(5));//传统调用方式 toFourthPower.Compose(makeNegative)(5);//函数式调用方式