gpt4 book ai didi

c# - 将单个实例对象作为 IEnumerable 返回

转载 作者:IT王子 更新时间:2023-10-29 04:52:05 26 4
gpt4 key购买 nike

我有类 foo 的实例,我想将它作为 IEnumerable 返回。我可以在不创建新列表等的情况下完成吗?

可能像下面这样:

IEnumerable<foo>.fromInstance(foo)

最佳答案

选项:

  • 创建集合类的实例,例如数组或列表。默认情况下,这将是可变的,如果这是您希望能够在 API 中分发的序列,这将有点无益。你可以创建一个 ReadOnlyCollection<T> 包装这样的集合。
  • 根据 Botz3000 的回答编写您自己的迭代器 block
  • 使用Enumerable.Repeat(item, 1)来自 LINQ,如果您使用的是 .NET 3.5。

这里的最佳答案取决于用法。如果您需要它来调用另一个使用序列的方法,并且您知道它不会被修改,我可能会使用数组。例如,为了调用Concat在其他一些序列上,您可能需要:

var wholeList = regularList.Concat(new[] { finalValue });

我有信心Concat不会改变数组,其他任何东西都不会看到对数组本身的引用。

如果您需要将序列返回给其他代码,并且您不知道它可能用它做什么,我可能会使用 Enumerable.Repeat .

关于c# - 将单个实例对象作为 IEnumerable 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4779442/

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