Инициализация массива C # с несколькими копиями того же элемента

в C ++ Стандартный шаблон библиотеки (STL), возможно, например, создать вектор, состоящий из нескольких копий одного и того же элемента, используя этот конструктор:

std::vector<double> v(10, 2.0);

Это создаст вектор из 10 удваиваний, изначально установленным на 2.0.

I Хотите сделать подобное в C #, более конкретно создавая массив n удваивается со всеми элементами инициализированными к тому же значение x .

Я придумал следующую - Руководство, полагаясь на общие коллекции и Linq:

double[] v = new double[n].Select(item => x).ToArray();

однако, если посторонний прочитал этот код, я не думаю, что это будет немедленно очевидно, какой код на самом деле делает. Я тоже Обеспокоен производительностью, я полагаю, будет быстрее инициализировать элементы массива через для петли (хотя я не проверял). Кто-нибудь знает о более чистоте и / или более эффективном способе выполнения этой задачи?

21
задан Anders Gustafsson 5 September 2011 в 13:11
поделиться