Ответ 1
Да, используйте Enumerable.Repeat:
var myList = Enumerable.Repeat("myString", 50).ToList();
или это:
var myList = new List<string>(Enumerable.Repeat("myString", 50));
Если у вас есть существующий список, к которому вы хотите добавить эти элементы, используйте это:
myList.AddRange(Enumerable.Repeat("myString", 50));
Обратите внимание, что это не совсем LINQ как таковой, но он использует методы расширения, которые были добавлены вместе с LINQ для поддержки нового синтаксиса. С помощью только LINQ (т.е. Синтаксиса "from... select" ) это немного отличается, тогда я бы сделал следующее:
var myList = (from idx in Enumerable.Range(0, 50) select "myString").ToList();
Однако я бы не сделал этого, вместо этого я бы использовал методы Enumerable
.
Кроме того, если вы хотите создать разные строки, в зависимости от того, добавляется ли это первый, второй, третий и т.д., вы можете использовать Enumerable.Range вместо:
var myList = Enumerable.Range(0, 50).Select(idx => "myString#" + idx).ToList();
Создает список со строками myString#0
, myString#1
, myString#2
,...