gpt4 book ai didi

.net - 将 IEnumerable 转换为 IList

转载 作者:行者123 更新时间:2023-12-04 02:36:30 24 4
gpt4 key购买 nike

如果方法采用 System.Collections.IList 类型的参数,我可以合法/安全地传递 System.Collections.Generic.IEnumerable<T> 类型的值吗? ?

我将不胜感激详细解释为什么这是可能的以及对象 T 实际发生的情况。当IEnumerable<T>在方法内部使用。

它是否转换为 Object 的基本类型?

是否用作 System.Collections.IEnumerable ?

是否有任何情况会导致问题(即性能问题)?

提前致谢,
约翰

最佳答案

没有 , 你不能通过 IEnumerable<T>到一个采用 IList 的方法.接口(interface)IEnumerable<T>不能转换为 IList并试图传递 IEnumerable<T> 类型的变量采用 IList 的方法将导致编译错误。

为了完成这项工作,您需要执行以下操作之一

  • 而不是 IEnumerable<T> , 维护对实现 IEnumerable<T> 的类型的引用和 IList . List<T>是这里的好人选
  • 转换 IEnumerable<T>实例到一个可转换为 IList 的新对象.例如,在 3.5+ 中,您可以调用 .ToList()扩展方法来创建一个新的List<T>在枚举之上。
  • 关于.net - 将 IEnumerable<T> 转换为 IList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2000441/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com