zoukankan      html  css  js  c++  java
  • IEnumerable的几个简单用法

    咋一看到IEnumerable这个接口,我们可能会觉得很神奇,在一般的编程时,基本上我们是想不到去用它的,可是,俗话说得好,存在便是道理,那么,它对我们来说,能够带来哪些奇妙的事情呢?
    要想弄懂它,我们还是看看其定义吧!
    在MSDN上,是这么说的,它是一个公开枚举数,该枚举数支持在非泛型集合上进行简单的迭代。换句话说,对于所有数组的遍历,都来自IEnumerable,那么我们就可以利用这个特性,来定义一个能够遍历数组的通用方法,这样看来,是不是很神奇呢?
    例如:
    [csharp] view plain copy
     
    1. public static void Print(IEnumerable myList)  
    2. {  
    3.     int i = 0;  
    4.     foreach (Object obj in myList)  
    5.     {  
    6.         if (obj is Student)//这个是类型的判断,这里Student是一个类或结构  
    7.         {  
    8.             Student s=(Student)obj;  
    9.             Console.WriteLine(" [{0}]: {1}", i++, s.Sname);  
    10.         }  
    11.         if (obj is int)  
    12.         {  
    13.             Console.WriteLine("INT:{0}",obj);  
    14.         }  
    15.     }  
    16.     Console.WriteLine();  
    17. }  


    上面,我们可以在foreach中进行多个if判断,来进行相应的操作。
    IEnumerable 的另一个用法是在泛型中的使用。其中用lamda表达式在数组中查询,具体例子如下:
    [csharp] view plain copy
     
    1. List<string> fruits =  
    2.     new List<string> { "apple", "passionfruit", "banana", "mango",   
    3.         "orange", "blueberry", "grape", "strawberry" };  
    4. / List<string> query = fruits.Where(fruit => fruit.Length < 6).ToList();  
    5. IEnumerable<string> query = fruits.Where(fruit => fruit.Length < 6);  
    6. foreach (string fruit in query)  
    7.     Console.WriteLine(fruit);  


    以上的两个例子呢,我觉得在平时编程中,还是会经常用到的,我们不妨试试。。。
     
    https://blog.csdn.net/qingheshijiyuan/article/details/49047963
  • 相关阅读:
    【NOI1999、LOJ#10019】生日蛋糕(搜索、最优化剪枝、可行性剪枝)
    【NOI2016】区间
    【CodeForces688A】Opponents
    「LOJ10150」括号配对
    HDU6444(子段和、分情况比较)
    牛客练习赛41E(球的体积并)
    Codeforces 1154G(枚举)
    POJ1830(异或高斯消元)
    Codeforces 1114F(欧拉函数、线段树)
    牛客小白月赛13 G(双向搜索)
  • 原文地址:https://www.cnblogs.com/hedianzhan/p/8733327.html
Copyright © 2011-2022 走看看