zoukankan      html  css  js  c++  java
  • 常用Linq示例代码

       class Program
        {
            static void Main(string[] args)
            {
     
                //1. Aggregate
                int[] testArr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                //refer:http://www.cnblogs.com/ldp615/archive/2009/08/12/1544688.html
                // x is aggregate result 
                var result = Enumerable.Aggregate(testArr, (x, y) => { return x + y; });
                var result2 = Enumerable.Aggregate(testArr, calculateSum);
     
                string[] testStringArr = new string[] { "i", "am", "chinese" };
                var resultString = testStringArr.Aggregate((x, y) => { return x + "  " + y; });
     
                //2. All
                var allOK = testArr.All(o => o % 2 == 0);
                var allOK2 = testArr.All(o => o < 10);
     
                //3.Cast
                var testArr2 = Enumerable.Repeat(new CD() { Title = "a" }, 10);
                var ret = testArr2.Cast<ABC>().First();
     
                //4.group by
                var groupArr = testArr.GroupBy(o => o % 2 == 0);
                var allKeys = groupArr.Select(o => o.Key);
                var allKeysWithValues = groupArr.SelectMany(o => o.Select(x => x + " " + o.Key)).ToList();
     
                //5.Intersect
                int[] testArr3 = new int[] { 1, 2, 3, 9, 11, 12 };
                var intersectResult = testArr.Intersect(testArr3).ToList();
     
                //6.MAX, 
                var retMAX = testStringArr.Max(o => compareMAX(o));
     
     
                //7.single 
                //refer: http://blog.163.com/li_crane/blog/static/1950209720110853413858/
                //Single():操作一个集合,同时强要求只有一个对象匹配,并返回这一个。
                //First():操作一个集合,可以有多个对象匹配,但是只返回第一个。
                //Take(1):操作一个集合,可以有对个对象匹配,单只返回第一个,但是这里返回的是一个集合,而不是单个的概念。
     
                //8.Orderby ThenBy
                int i = 0;
                List<CD> allCDs = new List<CD>();
                while (i < 10)
                {
                    allCDs.Add(new CD() { Title = i + "i", SubTitle = DateTime.Now.ToString(), TypeID = i % 3 });
                    i++;
                }
                var newList = allCDs.OrderBy(o => o.SubTitle).ThenBy(o => o.Title);
     
                //9.ToDictionary
                var retDictionary = allCDs.ToDictionary(x => x.Title, y => y);
     
                //10.ToLookup
                //refer:http://blog.sina.com.cn/s/blog_5fc933730100xd3d.html
                var retLookup = allCDs.ToLookup(x => x.TypeID);
                var secondElement = retLookup[2];
     
                //1.Zip
                //refer:http://www.cnblogs.com/lifepoem/archive/2011/11/29/2267243.html
                IEnumerable<string> zip = testArr.Zip(allCDs, (n, w) => n + "=" + w.Title + "|" + w.SubTitle);
     
                foreach (var zipstr in zip)
                {
                    Trace.WriteLine(zipstr);
                }
            }
     
            static int calculateSum(int a, int b)
            {
                return a + b;
            }
     
            static T compareMAX<T>(T parm)
            {
                return parm;
            }
        }
     
     
        class ABC
        {
            public string Title { get; set; }
        }
     
        class CD : ABC
        {
            public string SubTitle { get; set; }
            public int TypeID { get; set; }
        }
  • 相关阅读:
    生活中的大数据 hadoop
    IOS设计模式学习(11)中介者
    Java 编程的动态性,第3部分: 应用反射--转载
    Java编程 的动态性,第 2部分: 引入反射--转载
    Java 编程的动态性 第1 部分: 类和类装入--转载
    斐波那契数列(fabnacci)java实现
    Chrome调试大全--转载
    jboss7 加载module过程
    UML解惑:图说UML中的六大关系--转
    jboss学习
  • 原文地址:https://www.cnblogs.com/xiaokang088/p/3238013.html
Copyright © 2011-2022 走看看