从Java到C#的迭代器方法与接口的等效性,然后在类上实现?
我正在将一个项目从Java转换为C#。在这个Java项目中,有一个接口:public interface TrackIterator,然后它作为其中的一个成员:public Iterator createIterator();。要实现它的类将createIterator作为一个方法,返回对象的Arraylist(在C#列表中),我如何将其从Java转换为C#以便在转换后的C#类上实现它
// interface
public interface TrackIterator
{
public Iterator createIterator();
}
// class that implements it
public class trackList implements TrackIterator
{
// other methods, fields, etc
// method from interface TrackIterator
public Iterator createIterator()
{
// popularSongs is an ArrayList of objects in Java, in C# it's a List<MyTrack>
return popularSongs.iterator();
}
}
# 1 楼答案
在我看来,你可以从两个方面着手。第一种方法是使
TrackList
实现IEnumerable<Track>
,并滚动您自己的可枚举项:或者,如果在公开
List<Track>
时没有特殊的逻辑,只需在需要的地方使用List<Track>
:如果您只想获得一个包含曲目的列表,并将其打印到控制台上,只需执行以下操作: