我有一个包装对象列表的类。我希望这个类与foreach循环兼容。
我已经看到了几个关于如何在SO上执行此操作的问题,但大多数答案都没有为我编译。
class TrackList
{
private List<Track> tracks = new List<Track>();
}
你会为此添加什么以使其可用于每个?
到目前为止,我有:
class TrackList : IEnumerable<Track>
{
// ...
public IEnumerator<Track> GetEnumerator()
{
return trackList.GetEnumerator();
}
System.Collections.IEnumerator System.Collections.IEnumerator.GetEnumerator()
{
return this.GetEnumerator();
}
}
但它说(翻译错误):
错误1&#39; HP.TrackList&#39;没有实现接口成员 &#39; System.Collections.IEnumerable.GetEnumerator()&#39 ;. &#39; HP.TrackList.GetEnumerator()&#39;无法实施 &#39; System.Collections.IEnumerable.GetEnumerator()&#39;,因为它没有 具有对应的返回类型 &#39; System.Collections.IEnumerator&#39 ;. XXX \ TrackList.cs 11
如果我使用:
IEnumerator<Track> IEnumerator<Track>.GetEnumerator()
{
return this.GetEnumerator();
}
给我同样的错误。
答案 0 :(得分:6)
这一行错了:
System.Collections.IEnumerator System.Collections.IEnumerator.GetEnumerator()
^----------------------------^ ^----------------------------^
The type you're returning The interface you're
implementing
这里有两种类型:
IEnumerable
第二个应该是IEnumerator
而不是System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
所以请:
private List<Track> tracks = new List<Track>();
另请注意您的私人字段:
tracks
的名称为trackList
而不是 <html>
<head><title> hello </title></head>
<body>
<?php $image = 'zz.png'; ?>
<img src= "<?php $image ?>" style="width:304px;height:228px;">
hello world..
</body>
</html>
,我假设这只是一个简单的拼写错误,否则您也需要解决此问题。