• 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之美》--张子阳,感谢写了这么好的书!

  • 相关阅读:
    react开发环境准备
    react介绍
    课程大纲
    Proving Equivalences HDU-2767 (tarjan缩点)
    tarjan求强连通分量 + 缩点 + 求割点割边
    树的重心(性质+模版)
    Educational Codeforces Round 93 (Rated for Div. 2)(A B C D)
    Friend-Graph HDU
    Codeforces Round #665 (Div. 2) (A B C D E)
    Matrix Again HDU
  • 原文地址:https://www.cnblogs.com/darrenji/p/3638788.html
Copyright © 2020-2023  润新知