операция push_back в контейнерах c # - PullRequest
1 голос
/ 19 января 2011

Мне нужен контейнер, как вектор C ++.Часто рекомендуется использовать List, но он не поддерживает операцию push_back.Я знаю, что это довольно простая реализация метода расширения для контейнера List.Но.Будет ли стек хорошей альтернативой?

Спасибо!

Ответы [ 2 ]

16 голосов
/ 19 января 2011

Поддерживает List<T>.Add.Разве это не то, что вы ищете?

1 голос
/ 19 января 2011

Вы не получите прямой эквивалент vector в C #, потому что у вас нет контроля над тем, как распределяется память.std::vector всегда будет иметь свою память в непрерывном блоке;поэтому при необходимости вы можете получить к нему доступ следующим образом:

std::vector<int> v;
// add items to v
CallSomeCFunction(&v[0]);

C # не дает вам никакого контроля над тем, как распределена память, поэтому различие между вектором / массивом и списком отсутствует.Вы можете использовать контейнер List, что вы хотите.

...