【问题标题】:What's the difference between List<string> and IEnumerable<String>? [duplicate]List<string> 和 IEnumerable<String> 有什么区别? [复制]
【发布时间】:2010-11-15 09:36:50
【问题描述】:

可能重复:
What's the difference between IEnumerable and Array, IList and List?

以上两者有什么区别?

【问题讨论】:

标签: c# .net


【解决方案1】:

List&lt;string&gt;IEnumerable&lt;string&gt; 的具体实现。不同之处在于IEnumerable&lt;string&gt; 只是string 的序列,但List&lt;string&gt; 可以通过int 索引进行索引,可以在特定索引中添加和删除以及插入项目。

基本上,接口IEnumerable&lt;string&gt; 允许您按顺序流式传输string,但List&lt;string&gt; 允许您执行此操作以及以特定方式修改和访问列表中的项目。 IEnumerable&lt;string&gt;string 的一般序列,可以迭代但不允许随机访问。 List&lt;string&gt; 是一个特定的随机访问可变大小集合。

【讨论】:

  • 这个答案比stackoverflow.com/questions/764748/…的答案更有帮助
  • 具体实现是什么意思?这是否意味着列表继承自 ienumerable?
  • @user1534664:不。这意味着它继承自IEnumerable 并且它不是抽象的,它实际上是可构造的。
【解决方案2】:

不同。

IEnumerable 使您能够使用 for-each 循环遍历集合。

而 IEnumerable 只有 GetEnumerator 方法。

List实现了IEnumerable、Ilist等很多接口,List里面的功能很多。

在性能上 IEnumerable 比 List 快。

【讨论】:

    【解决方案3】:

    IEnumerable&lt;T&gt; 是一个接口。必须执行。

    List&lt;T&gt;IEnumerable&lt;T&gt; 的一种实现

    【讨论】:

      【解决方案4】:

      一个是接口: http://msdn.microsoft.com/en-us/library/9eekhta0.aspx

      另一个是实现该接口的类: http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

      此外,List 是一个数组,当您向其中添加元素时会增长,而 IEnumerable 允许在 foreach 中使用实现者。

      【讨论】:

        【解决方案5】:

        第一个是字符串的具体List,另一个是实现IEnumerable&lt;string&gt;的任何类

        【讨论】:

          猜你喜欢
          • 2014-07-22
          • 2017-05-08
          • 2018-07-16
          • 1970-01-01
          • 2019-01-08
          • 1970-01-01
          • 2022-01-13
          • 2013-03-14
          • 2016-03-26
          相关资源
          最近更新 更多