gpt4 book ai didi

c# - 产生 IList 返回类型

转载 作者:行者123 更新时间:2023-12-01 23:51:15 27 4
gpt4 key购买 nike

我必须实现一个序列化/反序列化类,并且我正在使用 System.Xml.Serialization 。我有一些IList<Decimal>类型属性并希望在 IList<string> 中序列化解码属于具有特定区域性信息的列表的所有十进制值。例如1010,00具有意大利文化信息,但 10.00带有英语文化信息。我尝试用这个来做到这一点:

public IList<string> method()
{
for (int i = 0; i < 1000; i++)
{
yield return i.ToString();
}
}

但是我在编译时得到错误 33

The body of 'Class1.method()' cannot be an iterator block because 'System.Collections.Generic.IList<string>' is not an iterator interface type

如果我用作属性类型 IEnumerable<string>它工作成功,但显然我无法更改我想要序列化的数据类型。

感谢任何帮助。

最佳答案

yield仅适用于 IEnumerable<T> , IEnumerable , IEnumerator<T>IEnumerator作为返回类型。
在您的情况下,您需要使用普通方法:

public IList<string> method()
{
var result = new List<string>();
for (int i = 0; i < 1000; i++)
{
result.Add(i.ToString());
}
return result;
}

想一想。您的代码将允许您编写以下代码:

method().Add("foo");

这没有多大意义,不是吗?

关于c# - 产生 IList 返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13513868/

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