我在foreach声明中收到此错误。
foreach statement cannot operate on variables of type because does not contain a public definition for 'GetEnumerator'.
这意味着什么,我怎么解决这个问题?
更新
以下是一些代码:
ServiceReference.TimereportResponseDto[] response;
foreach (ServiceReference.TimereportResponseDto r in response)
arbu.Text += r.Message + " " + r.Id + Environment.NewLine;
将 [] 添加到第一个精简版,现在我又收到了另一个错误:
Use of unassigned local variable 'response'
更新2
我有这个文档示例,它看起来像这样:
Gateway.TimereportResponseDto[] response = theGate.CreateTimereport(timeReport);
foreach (Gateway.TimereportResponseDto r in response)
textBoxLog.Text += r.Message + " " + r.Id + Environment.NewLine;
答案 0 :(得分:8)
这意味着您无法对所需对象执行foreach
,因为它不会公开由GenEnumerator
(IEnumerable
)实施的IEnumerable<T>
方法。似乎它不是Collection-object。
请参阅MSDN:
IEnumerable的接口
Exposes the enumerator, which supports a simple iteration over a non-generic collection.
答案 1 :(得分:4)
您没有迭代实现(IEnumerable
或IEnumerable<T>
),的对象(例如数组或列表)
foreach语句为每个语句重复一组嵌入式语句 数组中的元素或实现。的对象集合
System.Collections.IEnumerable
或System.Collections.Generic.IEnumerable<T>
界面。
答案 2 :(得分:2)
来自 MSDN ;
foreach语句为每个语句重复一组嵌入式语句 数组中的元素 或实现的对象集合 System.Collections.IEnumerable或 System.Collections.Generic.IEnumerable接口。
看起来你应该在课堂上使用IEnumerable
接口。