2010-02-16 52 views
2

直到现在我还没有尝试在通用列表中使用foreach子句。编译错误我得到的是:在通用列表中使用'foreach'时遇到问题

foreach语句无法在类型“DMS.OrderNodeList”的变量操作,因为“DMS.OrderNodeList”不包含“的GetEnumerator”

任何建议一个公共定义下一步做什么?

感谢,

+1

OrderNodeList似乎没有实现任何可枚举的接口? IEnumerable,IList,IList 等。因此,它不是一个通用列表 - 就.NET而言,它根本不是一个列表。关于“任何建议接下来要做什么” - 是的,请阅读.NET中的列表和泛型。具体来说,花点时间了解IEnumerable和IEnumerable 以及它们的含义。 – bzlm 2010-02-16 09:27:04

+5

Google无法在“DMS.OrderNodeList”上找到*任何内容*。它是如何定义的? – 2010-02-16 09:28:01

+0

konrad。不错。微妙。 +1 – 2010-02-16 10:18:44

回答

1

您需要实现IEnumerable接口在定制集合(它不是一个通用的清单)。

+0

如果它暴露IEnumerable a .ToList()。ForEach()将是一个选项....我想你的意思是他必须明确实现IEnumerable <>,否? – 2010-02-16 09:29:18

+0

@Sky讽刺的是,IEnumerable接口实际上并没有将ForEach()作为成员。唉,原始文章模糊地使用了“通用”一词,所以我们不知道该列表是否需要通用(IEnumerable ),或者它是否是泛型的,因为它包含misc。的东西。 如果他只需要ForEach(),那么IEnumerable就是他需要的,IEnumerable 不会强制执行。 – bakasan 2010-02-16 10:13:49

+0

我听说你。猜测我们将不得不等待DMS.OrderNodeList的beta版发现。 – 2010-02-16 10:19:38

3

告诉你OrderNodeList类来扩展Collection<OrderNode>,那么你会在得到这个枚举你(大概是多少你手动创建管理集合现在为你实现的逻辑的。)

假设您的OrderNodeList拥有一组OrderNode对象。

+0

收藏列表,你确定吗?它不应该延长收藏 2010-02-16 11:13:28

+0

当然啊! – 2010-02-16 13:01:00