Есть ли способ создания динамического массива в C#?Динамический массив в C#
ответ
Посмотрите на Generic Lists.
List<T>
для строго типизированного, или ArrayList
, если у вас есть .NET 1.1 или вы любите лить переменные.
+1 приятное объяснение. –
Расширение на ответ Криса и Миголя с образцом кода.
Использование массива
Student[] array = new Student[2];
array[0] = new Student("bob");
array[1] = new Student("joe");
Используя общий список. Под капотом класс <T> использует массив для хранения, но делает это таким образом, чтобы он мог эффективно расти.
List<Student> list = new List<Student>();
list.Add(new Student("bob"));
list.Add(new Student("joe"));
Student joe = list[1];
этот пример наполовину плохой, потому что мы оба говорили о ArrayList – Migol
@Migol, он также наполовину хорош;) – JaredPar
Этот ответ лучше вашего @Migol, потому что это показывает, как на самом деле использовать List <> вместо того, чтобы просто упоминать об этом как ключевое слово. «half-bad» -> «half-good» -> good – fhugas
Иногда простые массивы предпочтительнее Generic списков, так как они более удобны (лучше производительность для дорогостоящих вычислений -Numerical алгебры приложений, например, или для обмена данными с помощью статистического программного обеспечения, как R или Matlab)
В этом случае вы можете использовать метод ToArray() после начала своего списка динамически
List<string> list = new List<string>();
list.Add("one");
list.Add("two");
list.Add("three");
string[] array = list.ToArray();
конечно, это имеет смысл только в том случае, если размер массива никогда не известен ни фиксированной априорного. , если вы уже знаете размер вашего массива в какой-то момент программы, лучше начать его как массив фиксированной длины. (Если вы извлечь данные из ResultSet, например, вы можете рассчитывать его размер и инициировать массив такого размера, динамически)
С уважением,
МДжем
Не стоит, если вы используете индексатор. – aaimnr
Ararys не являются более удобными (они предлагают подмножество интерфейса
Если у вас * have * передать массив в интерфейс, а затем он должен быть массивом. Гораздо проще создать список, а затем сделать его в массив непосредственно перед его передачей. Мне нравится этот ответ больше, чем другие, потому что он решает вопрос! –
Используйте список массива, который на самом деле реализовать массив. Сначала требуется массив размера 4, и когда он заполняется, новый массив создается с его двойным размером, а данные первого массива копируются во второй массив, теперь новый элемент вставляется в новый массив. также имя второго массива создает псевдоним первого, так что он может получить доступ к одним и тем же именем, что и предыдущая, и первый массив получает расположенный
Этот ответ, кажется, ответ, который вы ищете Why can't I do this: dynamic x = new ExpandoObject { Foo = 12, Bar = "twelve" }
Читайте о ExpandoObject
здесь https://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject(v=vs.110).aspx
, И dynamic
типа здесь https://msdn.microsoft.com/en-GB/library/dd264736.aspx
динамического массива Пример:
Console.WriteLine("Define Array Size? ");
int number = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter numbers:\n");
int[] arr = new int[number];
for (int i = 0; i < number; i++)
{
arr[i] = Convert.ToInt32(Console.ReadLine());
}
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine("Array Index: "+i + " AND Array Item: " + arr[i].ToString());
}
Console.ReadKey();
- 1. динамический массив в c
- 2. динамический массив в C++
- 3. Динамический массив в C
- 4. Динамический массив в C++
- 5. Динамический массив в C
- 6. C# Динамический массив/индекс
- 7. C# Динамический массив
- 8. C Динамический массив символов
- 9. Динамический расширяющийся массив C++
- 10. Динамический выделенный массив C++
- 11. C# динамический ExpandoObject массив
- 12. Динамический массив C++
- 13. Динамический массив C++ ADT
- 14. C++ malloc - динамический массив
- 15. Динамический массив C++
- 16. динамический массив строк C++
- 17. C++ многомерный динамический массив
- 18. Большой динамический массив в C++
- 19. Возвращает динамический массив в C++
- 20. размерный динамический массив в C++
- 21. Динамический массив объектов в C++
- 22. C++ динамический массив в классе
- 23. C++ передавая динамический массив в
- 24. Инициализировать динамический массив в C
- 25. создать динамический массив в C#
- 26. Динамический массив, динамический конструктор
- 27. Как создать динамический массив C++
- 28. Синтаксис C++ - многомерный динамический массив
- 29. C# динамический массив инициализация [преимущество?]
- 30. Hacking C++ динамический массив размер
+1 для того, чтобы подталкивать его к классу коллекций –
Вопрос (хотя и короткий и неописанный) не спрашивает об общем списке - вопрос может быть задан о 'dynamic []' https://msdn.microsoft.com /en-GB/library/dd264736.aspx (массив динамических типов) или 'ExpandoObject' https://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject(v=vs.110).aspx Я мог бы ответить -1, не упоминая эти –
@ LukeTO'Brien, динамика была введена в C# 4.0, которая была выпущена через год после того, как этот вопрос изначально был задан. OP, вероятно, спрашивал о изменяемой по размеру структуре данных, такой как https://en.wikipedia.org/wiki/Dynamic_array –