static class Helper {
public static T Cast<T>(this object obj, T sample)
{
//類型推導功能
return (T)obj;
}
}
public static class Helper2
{
public static string ShowTime(this String obj)
{
return obj + DateTime.Now.ToString();
}
}
class Program
{
static void Main(string[] args)
{
#region 匿名型別的局部變數
//var str = "Hello";
//var num = 22.3;
//var arr = new[] { "1", "2", "3" };
//foreach (var item in arr)
//{
// Console.WriteLine(item);
//}
#endregion
#region 匿名型別
//var Test = new { name = "zhangsan", id = 12 };
//Console.WriteLine(Test.name);
#endregion
#region 擴充方法
//var abc = "hello".ShowTime();
//Console.WriteLine(abc);
#endregion
#region 對象初始化器
#endregion
#region 集合初始化器
List<String> list = new List<string>() { "1","3","ggf"};
foreach (var item in list)
{
Console.WriteLine(item);
}
#endregion
#region Lambda運算式
//所謂Lambda運算式實際上是對一個集合進行資料篩選和計算用的
List<object> user = new List<object>{
new {Id=1,Name="YJingLee",Age=22},
new {Id=2,Name="XieQing",Age=25},
};
//擷取特定人時所用的過濾條件,p參數屬於User類型
var results = user.Where(p => p.Cast(new { Id = 0, Name = string.Empty, Age = 0 }).Name == "XieQing").ToList();
foreach (var item in results)
{
Console.WriteLine(item.Cast(new { Id = 0, Name = "", Age = 0 }).Name);
}
//用User對象的Age值計算平均年齡
var average = user.Average(p => p.Cast(new { Id = 0, Name =string.Empty, Age = 0 }).Age);
#endregion
}
}