【发布时间】:2019-05-10 06:12:51
【问题描述】:
虽然我想使用数组或 ArrayList,但我有一个包含属性到“列表”中的类。我相信他们对使用任何一个都有一些限制。我在下面提供了两种方法的示例;哪个是更好的方法?哪种方法在内存使用方面更快?
public class Cat
{
public int CatId { get; set; }
public string CatName { get; set; }
public static void ListCats()
{
ArrayList cats = new ArrayList();
Cat cat = new Cat();
cat.CatId = 1;
cat.CatName = "Jim";
cats.Add(cat);
cat.CatId = 2;
cat.CatName = "Sally";
cats.Add(cat);
}
}
我了解 ArrayList 附带的方法可以更轻松地使用列表执行不同的操作。此外,ArrayList 不是强类型集合。但是,如果需要定期从用户那里提取列表中的值,那么明确使用列表是否更有意义?在哪些情况下应该使用数组?
public class Cats
{
public string CatName { get; set; }
public int CatId { get; set; }
}
public static void ListCats()
{
Cats[] cats = new Cats[];
Cats[] = {
CatName = "Charlie", CatId = 1;
CatName = "Missy", CatId = 2;
}
}
【问题讨论】:
-
不清楚你在问什么。数组和列表可以“非常相似”地使用,因此(从使用角度来看)只有很小的区别,因为这些集合可以随时相互转换。
-
在第一个 sn-p 中,更改
ListCats():List<Cats> cats = new List<Cats>() { new Cats() { CatName = "Charlie", CatId = 1 }, new Cats() { CatName = "Missy", CatId = 2 } };你的Cats类应该是Cat,所以你的列表将是一个List<Cat>到你.Add()new Cat()或AddRange(Enumerable<Cat>)。您的ListCats()可以返回List<Cats>而不是void。 -
您发布的代码不正确。