Linq in action notes (5 lang features required for LINQ)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace LinqInAction
{
    class ProcessData
    {
        //public int Id{get;set;}
        //public string Name {get;set;}
        public int Id;
        public string Name;
    }


    public static class CommonExt
    {
        public static int calcTotal(this List<int> numList)
        {
            return numList.Sum();
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            // 1) and 2) var syntax and object initializer
            var obj = new ProcessData{Id = 1, Name="notepad.exe" };
            Console.WriteLine("ProcessData");
            ObjectDumper.Write(obj);


            // 3) lambda
            var num = new List<int> { 1, 2, 3, 4, 5, 6 };
            var cnt = num.Count(x => x > 3);


            Func<int, bool> CmpProc = (x => x > 3);


            Console.WriteLine("Num list");
            ObjectDumper.Write(num);
            Console.WriteLine("Count > 3");
            ObjectDumper.Write(cnt);


            // 4) extension method
            var ttl = num.calcTotal();
            Console.WriteLine("Total");
            ObjectDumper.Write(ttl);


            var top2sum=num.Take(2).Sum();
            Console.WriteLine("top2sum = {0}", top2sum);


            // 5) anonymous type
            var data = new { Id = 3, Name = "devenv.exe" };
            Console.WriteLine("anonymous type");
            ObjectDumper.Write(data,1);


            Console.ReadLine();
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值