zoukankan      html  css  js  c++  java
  • 23LINQ运算符返回其它类型实例汇总

      IEnumerable<T>返回其它集合类型

    ToArray()
    ToList()
    ToDictionary()
    ToLookUp()

     

      返回集合中的元素

    □ ElementAt()返回某个位置上的元素

                int[] arr = {1, 2}; 
                int item = arr.ElementAt(0); 
                Console.WriteLine(item.ToString()); 
                Console.ReadKey();

    结果: 1

     

    □ ElementAtOrDefault()某位置上的元素不存在时,返回默认值,引用类型返回null

                int[] arr = {1, 2}; 
                int item = arr.ElementAtOrDefault(5); 
                Console.WriteLine(item.ToString()); 
                Console.ReadKey();

    结果: 0

     

    □ First()返回满足条件的第一个元素,不存在,抛异常

                int[] arr = {1}; 
                int item = arr.First(x => x%2 == 0); 
                Console.WriteLine(item.ToString()); 
                Console.ReadKey();

    16

     

    □ FirstOrDefault()返回满足条件的第一个元素,不存在,返回默认值

                int[] arr = {1}; 
                int item = arr.FirstOrDefault(x => x%2 == 0); 
                Console.WriteLine(item.ToString()); 
                Console.ReadKey();

    结果: 0

     

    □ Last()和LastOrDefault()类同于First()和FirstOrDefault()

    □ Single()只有一个满足条件,满足条件超过1个抛异常

                int[] arr = {1, 1, 2}; 
                int item = arr.Single(x => x == 1); 
                Console.WriteLine(item.ToString()); 
                Console.ReadKey();

    17

     

    ● 当一个集合中只有一个元素,Single()可以返回这个唯一的元素

                int[] arr = {1}; 
                int item = arr.Single(); 
                Console.WriteLine(item.ToString()); 
                Console.ReadKey();

    结果: 1

     

    □ SingleOrDefault()有一个或0个满足条件,如果2个满足条件返回默认值

                int[] arr = {1,2}; 
                int item = arr.SingleOrDefault(x => x == 5); 
                Console.WriteLine(item.ToString()); 
                Console.ReadKey();

    结果: 0

     

      返回标量值

    □ Count()返回集合元素数量,类型为整型

                int[] arr = {1,2}; 
                int query = arr.Count(); 
                Console.WriteLine(query.ToString()); 
                Console.ReadKey();

    结果: 2

     

    □ LongCount()返回集合元素数量,类型为long

                int[] arr = {1,2}; 
                long query = arr.LongCount(); 
                Console.WriteLine(query.ToString()); 
                Console.ReadKey();

    结果: 2

     

    □ Max()返回最大项     

                int[] arr = {1,2}; 
                int query = arr.Max(); 
                Console.WriteLine(query.ToString()); 
                Console.ReadKey();

    结果: 2

     

    □ Min()返回最小项

                int[] arr = {1,2}; 
                int query = arr.Min(); 
                Console.WriteLine(query.ToString()); 
                Console.ReadKey();

    结果: 1

     

    □ Average()返回平均值

                int[] arr = {1,2}; 
                double query = arr.Average(); 
                Console.WriteLine(query.ToString()); 
                Console.ReadKey();

    结果: 1.5

     

    □ Sum()返回总和

                int[] arr = {1,2}; 
                int query = arr.Sum(); 
                Console.WriteLine(query.ToString()); 
                Console.ReadKey();

    结果: 3

     

    □ Aggregate()返回自定义的聚合,对原始集合中的元素进行操作返回结果

                int[] arr = {1,2}; 
                int query = arr.Aggregate(0, (total, x) => total + (x*2)); 
                Console.WriteLine(query.ToString()); 
                Console.ReadKey();

    结果: 6    

     

    □ Contains()判断某一元素是否存在

                int[] arr = {1,2}; 
                bool query = arr.Contains(1); 
                Console.WriteLine(query.ToString()); 
                Console.ReadKey();

    结果: true

     

    □ Any()集合中只要有一个元素满足就返回true

                int[] arr = {1,2}; 
                bool query = arr.Any(x => x == 2); 
                Console.WriteLine(query.ToString()); 
                Console.ReadKey();     

    结果: true

     

    □ All()只要有一个元素不满足条件就返回False

                int[] arr = {1,2}; 
                bool query = arr.All(x => x >= 2); 
                Console.WriteLine(query.ToString()); 
                Console.ReadKey();

    结果: false


     
    □ SequenceEqual()逐项比较两个集合中的元素,当元素数目相同且相同位置元素也相同,返回true

                 int[] arr = {1,2}; 
                int[] arr1 = {1}; 
                bool query = arr.SequenceEqual(arr1); 
                Console.WriteLine(query.ToString()); 
                Console.ReadKey();

    结果: false

     

      System.Linq.Enumerable的其它静态方法

     

    创建空的string集合:
    IEnumerable<string> list = Enumerable.Empty<string>();

    创建空的int集合:
    IEnumerable<int> list = Enumerable.Empty<int>();

    创建连续的int集合:
    IEnumerable<int> list = Enumerable.Range(0,3);

    创建重复的int集合:
    IEnumerable<int> list = Enumerable.Repeat(0,3);

     

    参考资料:
    《.NET之美》--张子阳,感谢写了这么好的书!

  • 相关阅读:
    CSS学习(五)
    1. Git-2.12.0-64-bit .exe下载
    90.bower解决js的依赖管理
    89.[NodeJS] Express 模板传值对象app.locals、res.locals
    88.NODE.JS加密模块CRYPTO常用方法介绍
    87.node.js操作mongoDB数据库示例分享
    50.AngularJs directive详解及示例代码
    49.AngularJs 指令directive之controller,link,compile
    48.AngularJS ng-src 指令
    86.express里面的app.configure作用
  • 原文地址:https://www.cnblogs.com/darrenji/p/3638788.html
Copyright © 2011-2022 走看看