-5

我在我的 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; 
4

3 回答 3

8

这意味着您无法foreach对所需的对象进行操作,因为它没有公开GenEnumeratorIEnumerable( IEnumerable<T>) 实现的 - 方法。似乎它不是集合对象。

MSDN

IEnumerable-interface

Exposes the enumerator, which supports a simple iteration over a non-generic collection.
于 2013-05-22T07:51:17.740 回答
4

您没有迭代实现(IEnumerableIEnumerable<T>)的对象,(例如数组或列表)

foreach - MSDN

foreach 语句为实现 System.Collections.IEnumerableor System.Collections.Generic.IEnumerable<T>接口的数组或对象集合中的每个元素重复一组嵌入语句。

于 2013-05-22T07:50:56.520 回答
2

来自MSDN

foreach 语句为实现 System.Collections.IEnumerable 或 System.Collections.Generic.IEnumerable 接口的数组对象集合中的每个元素重复一组嵌入语句。

看起来你应该IEnumerable在你的类中引入接口。

于 2013-05-22T07:52:59.700 回答