我还发现了以下示例
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); }
上述输出:
Sourav
Sachin
我想知道,在上面的例子中使用IEnumerable的优势是什么?我可以使用’var'(注释行)来实现相同的功能.
如果你们中的任何人能够帮助我理解这一点并且使用IEnumerable的例子有什么好处,我将不胜感激?如果我们不使用它怎么办?
解决方法
它很有用,因为它是许多集合的基本接口,各种数据访问层和ORM使用它,并且自动包含许多扩展方法.
Lists,Arrays,Bags,Queues,Stacks的许多具体实现都实现了它,允许各种各样的集合使用它的扩展方法.
实现IEnumerable或IEnumerable的集合也可以在foreach循环中使用.
从msdn开始
for each element in an array or an object collection that implements
the System.Collections.IEnumerable or
System.Collections.Generic.IEnumerable interface.
在你的代码示例中,你有一个名为names的变量,它将是一个IEnumerable< string>,了解它将是一个IEnumerable< string>是很重要的.无论您是否使用var关键字. var只允许您每次都明确地避免写入类型.
TLDR
它是许多不同类型集合的通用基础接口,允许您在foreach循环中使用您的集合,并免费提供许多额外的扩展方法.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。