ArrayList什么时候比在C#中使用数组更高效



虽然我想使用数组或ArrayList,但我有一个类在"List"中包含属性。我相信他们对使用任何一种都有一些限制。我在下面举了两种方法的例子;哪种方法更好?哪种方法在内存使用方面更快?

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;
}
}

遍历数组总是更快,但列表在日常使用中更灵活、更有用。当你真的需要额外的一点点优化(例如游戏开发(时,请使用数组,否则我总是使用列表。

如果您需要更多信息,请参阅下面的链接:

我什么时候应该使用List与LinkedList

此外,如果您想初始化对象集合,请使用以下语法

List<Cats> cats = new List<Cats>
{
new Cats { CatName = "Charlie", CatId = 1 },
new Cats { CatName = "Missy", CatId = 2 },
};

最新更新