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

时间:2018-12-08 21:25:50

标签: c# arrays class

尽管我想使用数组或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;

               }
    }

1 个答案:

答案 0 :(得分:0)

遍历数组总是更快,但是列表在日常使用中更灵活,更有用。当您确实需要一点点优化(例如游戏开发)时,请使用数组,否则我将始终使用列表。

如果您需要更多信息,请参考以下链接:

When should I use a List vs a LinkedList

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

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