У меня есть класс, который содержит свойства в «Списке», хотя я хочу использовать массив или 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;
}
}
В первом фрагменте измените 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.
Опубликованный вами код неверен.





Итерация по массивам всегда выполняется быстрее, однако списки более гибкие и полезные в повседневном использовании. Используйте массивы, когда вам действительно нужна эта дополнительная крошечная оптимизация (например, разработка игр), иначе я всегда буду использовать списки.
Если вам нужна дополнительная информация, перейдите по ссылке ниже:
Когда мне следует использовать список или LinkedList
Также, если вы хотите инициализировать коллекцию объектов, используйте следующий синтаксис
List<Cats> cats = new List<Cats>
{
new Cats { CatName = "Charlie", CatId = 1 },
new Cats { CatName = "Missy", CatId = 2 },
};
Непонятно, о чем вы спрашиваете. Массивы и списки могут использоваться «совершенно аналогично», поэтому существует (с точки зрения использования) очень небольшая разница, поскольку эти коллекции могут быть преобразованы друг в друга в любое время.