Другой тип коллекции
Или есть другая лучшая коллекция?
Вы можете использовать Словарь . Пример использования:
using System.Collections.Generic;
...
var items = new Dictionary<int, int>();
items.Add(3, 1000); // will throw error if 3 already exists
// Or update
items[3] = 1000: // will not throw error if already exists or doesn't exist!
Обратите внимание, что порядок словаря не гарантируется. Из документов
Порядок, в котором возвращаются товары, не определен.
Если вам нужна гарантия заказа, вы можете использовать SortedList или SortedDictionary .
using System.Collections.Generic;
...
var items = new SortedList<int, int>();
items.Add(3, 1000); // will throw error if 3 already exists
// Or update
items[3] = 1000: // will not throw error if already exists or doesn't exist!
using System.Collections.Generic;
...
var items = new SortedDictionary<int, int>();
items.Add(3, 1000); // will throw error if 3 already exists
// Or update
items[3] = 1000: // will not throw error if already exists or doesn't exist!
Разница между SortedList и SortedDictionary заключается в производительности. Цитата из docs :
Если два класса различаются в использовании памяти и скорости вставки и удаления
(отсортированный) словарь и SortedList работает немного иначе, чем списки и массивы. Я рекомендовал бы прочитать связанную документацию Microsoft при использовании одного из них.
null
значений в списке или массиве
Мне придется заполнить первый и второй элементы нулем, чтобы я мог вставить что-то в 3-й индекс
Обратите внимание, что вы не можете добавить null
значения в список или массив целых чисел. Это было бы возможно только с «обнуляемыми целыми». (так что new List<int?>()
)