我创建了一个类似这样的类:
public class MovieTheaterList
{
public DateTime Date { get; private set; }
public int NumTheaters { get; private set; }
public Theater[] Theaters { get; private set; }
}
public class Theater
{
public string Name;
}
我希望能够将项目添加到MovieTheaterList类的Theatres数组中,但是当我尝试访问它时,它显示为IEnumerable类型并且没有Add()方法?
我习惯在C / C ++中的结构和类中使用数组,但是如何在.NET 3.5中向数组添加新项呢?
答案 0 :(得分:4)
将影院公开为IList,而不是阵列,您将能够添加/删除项目。 e.g。
public class MovieTheaterList
{
// don't forget to initialize the list backing your property
private List<Theater> _theaterList = new List<Theater>();
public DateTime Date { get; private set; }
public int NumTheaters { get; private set; }
// set is unnecessary, since you'll just be adding to / removing from the list, rather than replacing it entirely
public IList<Theater> Theaters { get { return _theaterList; } }
}
答案 1 :(得分:2)
为了实现此功能,让MovieTheatreClass扩展通用列表怎么样。
public class MovieTheatreList : List<Theatre>
{
public DateTime Date { get; private set; }
}
public class Theatre
{
public string Name;
}
通过这种方式,您可以获得List的所有内置内容(如Count而不是单独使用NumOfTheatres属性)。
答案 2 :(得分:1)
使用
List<Theater> Theaters { get; private set; }
而不是剧院阵列。您可以使用
初始化它Theaters = new List<Theater>();
在C#中使用列表通常比使用数组更受欢迎。您可以使用ToArray()
轻松地将数组转换为数组,但这样您就不必担心在创建时正确调整数组大小,或者更重要的是,在执行期间调整大小。