在C#中,只要函数返回IEnumerable,就能实现用foreach对元素进行遍历,代码如下

public class ReturnIEnumerable

{

public IEnumerable GetEnum() // 返回IEnumerable的方法

{

for(int i=0;i<100;i++)

{

yield return i+1000; // 使用 yield return 返回

}

yield break; // 使用 yield break 退出便利

}

}

public static void RunSnippet()

{

ReturnIEnumerable re = new ReturnIEnumerable();

foreach(int i in re.GetEnum()) // 在这里调用返回了IEnumerable的方法

{

System.Console.WriteLine(i);

}

}

从别的地方摘录的,各种使用的场景

1.如果你返回的集合是只用于遍历,不可修改的,则返回IEnumerable

2.如果返回的集合需要修改,如添加和删除元素,用ICollection

3.如果返回的集合需要支持排序,索引等,用IList

4.如果返回的集合要支持索引,但不能添加,删除元素,用ReadOnlyCollection

c html循环ienumerable,C#方法返回IEnumerable实现用foreach遍历相关推荐

  1. Entity Framework返回IEnumerable还是IQueryable?

    在使用EF的过程中,我们常常使用repository模式,本文就在repository层的返回值是IEnumerable类型还是IQueryable进行探讨. 阅读目录: 一.什么是Repositor ...

  2. 【Groovy】集合遍历 ( 使用 for 循环遍历集合 | 使用集合的 each 方法遍历集合 | 集合的 each 方法返回值分析 )

    文章目录 一.使用 for 循环遍历集合 二.使用 each 方法遍历集合 三.集合的 each 方法返回值分析 四.完整代码示例 一.使用 for 循环遍历集合 使用 for 循环 , 遍历集合 , ...

  3. 如何循环遍历document.querySelectorAll()方法返回的结果

    使用JavaScript的forEach方法,我们可以轻松的循环一个数组,但如果你认为document.querySelectorAll()方法返回的应该是个数组,而使用forEach循环它: /* ...

  4. 解决JS在controll层定义带循环的公共方法,组件中调用时取不到返回值的问题

    问题描述:下拉列表中,点击一个子节点,获取父节点的Id. 如果将方法直接写在组件内调用,完全ok的. 如果将方法提取到外层,想公用的话,组件内调用会出现方法中已经拿到值,但是页面调用时取不到返回值: ...

  5. IEnumerable是否应该实现IEnumerable接口

    C#2.0的遍历器(Iterator),应该是对Gamma提出的Iterator设计模式的实现.在C#中,如果某个类型继承了接口IEnumerable,或者继承了泛型接口IEnumerable < ...

  6. 中如何直接使用方法返回的值_java基础-2-方法、面向对象

    一.方法 1.1.定义:方法可以认为我们写程序中所要实现的某一个功能,方法中会包含很多条语句.流程控制.循环等,这些内容组合起来去处理一件事情. 1.2.方法的声明: 方法的声明位置必须写在类中,并且 ...

  7. js中的数组方法以及循环数组的方法

    目录 前言 一.数组是什么? 二.数组基本操作方法 1.创建数组 2.常用数组方法 三.循环数组的方法 总结 前言 数组是用来存储元素的一种非常重要的方式,掌握常用的数组方法以及学会遍历数组是学习编程 ...

  8. 循环数组的方法及区别

    1. forEach 不能使用return中止循环 var arr=[1,3,2,4];arr.forEach((item,index)=>{console.log(item);//1 3 2 ...

  9. day02--java基础编程:变量,数据类型,类型转换,运算规则,运算符,分支结构,循环(随机数),方法,重载,可变参数,递归,数组,冒泡排序

    1 Day02–变量+数据类型+类型转换 1.1 前言 1.1.1 标识符 可以简单的理解为一个名字.在Java中,我们需要标识代码的很多元素,包括包名.类名.方法.字段.变量等.我们选择的名称就称为 ...

最新文章

  1. 对于索引(a,b,c),下列哪些说法是正确的
  2. 【错误记录】GitHub 提交代码失败、获取代码失败、连接超时、权限错误、ping 请求连接超时 ( 查找域名对应 IP | 设置 host 文件 )
  3. Linux系统命令常用查询
  4. FileWriter写入和Scanner录入的简单操作
  5. 微信小程序:一起玩连线,一个算法来搞定
  6. 坑爹的Java除法取整(记洛谷P5709题WA的经历,Java语言描述)
  7. python教程输入_输入/输出
  8. PSD分层模板|电商促销海报设计技巧
  9. c语言转职,魔兽地图:3C转职版5.0C
  10. win7 mysql zip包如何安装_MySql 5.7.31 win7 Zip压缩包配置教程
  11. 阿里巴巴编码规范(java)考核
  12. Flink中的时间和窗口 完整使用 (第六章)
  13. EMV(一):初步了解EMV和EMV的分层结构
  14. cdr非法软件禁用网络弹窗警告提示盗版设置方法
  15. 【c语言进阶】大家是否对数据的存储不甚了解?本篇将揭开数据存储的神秘面纱*^____^*数据的存储(一)知识点讲解
  16. 计算机二级真题期刊论文模板,论文格式?二级标题是什么?
  17. 7-13 大家一起来玩游戏 (20 分)
  18. 控制反转(IOC) 和依赖注入(DI) 的理解
  19. 科大奥瑞物理实验——声速的测量
  20. 深度残差收缩网络简要解读

热门文章

  1. 绕过COM,一个巧妙的思路
  2. RhinoMock异常ExpectationViolationException以及解决
  3. AES加密的C语言实现
  4. springAOP与注解
  5. day048 BOM和DOM
  6. 2018.11.04 洛谷P1081 开车旅行(倍增)
  7. iOS开发系列之 itms-services 协议
  8. 【原创】.NET Core应用类型(Portable apps Self-contained apps)
  9. R 语言在数据处理上的禀赋之——独特的数据类型
  10. 【Sublime Text 3】Sublime Text 3 - cracked 3092