有没有办法将ListView对象添加到数组中,以便我可以使用for循环快速解决它们?
public static ListView tagListView;
public static ListView commonListView;
public static ListView recentListView;
public static ListView[] listviews = { tagListView, commonListView, recentListView };
此代码导致listviews数组项为null。我尝试了一些相同的结果。这可能吗?看起来我只需要创建一个指向这三个对象的指针数组。
我正在尝试这样做,因为ListViews在很大程度上是非常不同的,并且名称使它比数组中的三个项目更具可读性但每隔一段时间我需要做同样的事情这三个。
答案 0 :(得分:1)
你几乎得到了它。您只需要实例化ListViews。
public static ListView tagListView = new ListView();
public static ListView commonListView = new ListView();
public static ListView recentListView = new ListView();
public static ListView[] listviews = { tagListView, commonListView, recentListView };
答案 1 :(得分:0)
您的代码,实际上就是这样:
public static ListView tagListView = null;
public static ListView commonListView = null;
public static ListView recentListView = null;
所以你的数组赋值实际上是这样做的:
public static ListView[] listviews = { null, null, null};
如果您可以先实例化三个列表视图,那么这将是您最好的方法。
但是,如果你不能这样做并且需要在代码中稍后实例化它们,那么还有另一种方法。
你可以这样做:
public static IEnumerable<ListView> listviews = (new Func<ListView>[]
{
() => tagListView,
() => commonListView,
() => recentListView,
}).Select(x => x()).Where(x => x != null);
现在,您有一个可枚举的实例化列表视图,在您迭代可枚举的时。