gpt4 book ai didi

c# - yield 返回用法

转载 作者:太空宇宙 更新时间:2023-11-03 18:37:16 24 4
gpt4 key购买 nike

方法一:

class myClass
{
List<SomeType> _list;

IENumerator<SomeType> GetEnumerator()
{
foreach(SomeType t in _list)
yield return t;
}
}

myClass m = new myClass();
List<SomeType> list;
...
foreach(SomeType t in m)
list.Add(t);

方法二:

class myClass
{
public List<SomeType> _list {get; private set;}
}

myClass m = new myClass();
...
List<SomeType> list = m.list;

哪种方法更好?如果是第二个,那么你能给我看看 yield 返回的真实用法吗?

最佳答案

具有集合属性的类通常最好做成一个列表,这样它就可以多次迭代和变异。对于只代表一个序列的枚举器来说,这是不可能的。枚举器的典型用途可能是:

  • 动态过滤数据(例如Enumerable.Where)
  • 从包含多个记录的文件中顺序读取单个项目,而不是一次加载它们
    • 或网络套接字
    • 或数据库服务器
  • 为数据序列提供一个只进、只读的包装器
  • 等等

关于c# - yield 返回用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13514607/

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