Нет, это невозможно.
Классы универсальных коллекций .NET были разработаны в то время, когда основные языки .NET (C #, VB.NET) не поддерживали возвраты byref. Таким образом, доступ к элементу осуществляется исключительно через (индексированную) пару getter / setter, где создаются копии.
Это также позволяет избежать недостатка прямого доступа к элементу в отсортированных коллекциях (например, SortedList
или Dictionary
), которые необходимо знать каждый раз, когда значение элемента изменяется, чтобы элемент мог быть перемещен в правильное новое местоположение в пределах коллекция. Чтобы поддерживать согласованный интерфейс, маловероятно, что даже новые коллекции будут использовать возвраты byref.
Рассматривали ли вы использование ссылочного типа в вашей коллекции? Даже если тип, который вы хотите сохранить, является типом значения, вы можете создать ссылочный класс, содержащий его в качестве члена, и это позволит вам передавать его с помощью семантики ссылок (конечно, за счет локальности памяти).