讓我們在不修改原始程式,為類別增加新函式。
Enumerable.Range(1, 3)
.Select(x => x * 2)
.ToList()
.ForEach(x => Console.WriteLine(x.ToString()));
Enumerable.Range() 產生 1、2、3
Select() 2、4、6
ForEach() 列印在畫面上
因為 List 才有 ForEach()
所以先 ToList()
再 ForEach()
這邊可以利用 Extension Method
幫 IEnumerable 打造一個 ForEach()
namespace ConsoleApp
{
public static class Extensions
{
internal static void ForEach<t>(this IEnumerable<t> source, Action<t> action)
{
foreach (T element in source)
action(element);
}
}
}
整理一下
第一、第一個參數 this IEnumerable
第二、Extension Method 必須都為 static method
Enumerable
.Range(1, 3)
.Select(x => x * 2)
.ForEach(x => Console.WriteLine(x.ToString()));
用了
Extension Method 後這樣就能拿掉 ToList()
沒有留言:
張貼留言