什么是c#中的IEnumerable接口?如果我们不使用它怎么办?
在互联网上搜索C#中的IEnumerable接口是什么?它解决的问题是什么?如果我们不使用它怎么办?但从来没有真正得到太多.很多帖子都解释了如何实现它.
我还发现了以下示例 List<string> List = new List<string>(); List.Add("Sourav"); List.Add("Ram"); List.Add("Sachin"); IEnumerable names = from n in List where (n.StartsWith("S")) select n; // var names = from n in List where (n.StartsWith("S")) select n; foreach (string name in names) { Console.WriteLine(name); } 上述输出:
我想知道,在上面的例子中使用IEnumerable的优势是什么?我可以使用’var'(注释行)来实现相同的功能. 如果你们中的任何人能够帮助我理解这一点并且使用IEnumerable的例子有什么好处,我将不胜感激?如果我们不使用它怎么办? 解决方法
除了阅读
documentation之外,我还描述了IEnumerable< T>作为Ts的集合,它可以被迭代并且可以执行许多其他函数(例如Where(),Any()和Count())但是它不是为添加和删除元素而设计的.那是List< T>.
它很有用,因为它是许多集合的基本接口,各种数据访问层和ORM使用它,并且自动包含许多扩展方法. Lists,Arrays,Bags,Queues,Stacks的许多具体实现都实现了它,允许各种各样的集合使用它的扩展方法. 实现IEnumerable或IEnumerable的集合也可以在foreach循环中使用. 从msdn开始
在你的代码示例中,你有一个名为names的变量,它将是一个IEnumerable< string>,了解它将是一个IEnumerable< string>是很重要的.无论您是否使用var关键字. var只允许您每次都明确地避免写入类型. TLDR 它是许多不同类型集合的通用基础接口,允许您在foreach循环中使用您的集合,并免费提供许多额外的扩展方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |