У меня следующий класс

public class DataStore
{
   public int index {get;set;}
   public string value {get;set;}
}

Затем у меня есть список, как это:

var dataStoreList = new List<DataStore> 
{ 
    //Initialise with lots of objects 
}

Теперь я хочу заполнить значение index индексом элементов в Списке.

Я знаю, что могу использовать цикл for, но есть ли один лайнер, который я могу использовать для этого? Может у linq есть функция? Я погуглил несколько терминов, но пока не нашел ничего, что могло бы помочь

-1
Alex 1 Май 2019 в 17:38

2 ответа

Лучший ответ

Вы можете использовать {{X0 } }. У него есть перегрузка, которая обеспечивает значение индекса.

var values = new string[] { "foo", "bar", "baz" };

var dataStoreList = values.Select((v, i) => new DataStore { index = i, value = v }).ToList();
1
Brian Rogers 1 Май 2019 в 15:00

Я думаю, что вы ищете Enumerable.Range

var list = Enumerable
    .Range(0, 10)
    .Select(q => new DataStore { index = q })
    .ToList();

Это создаст список из 10 записей.

0
koryakinp 1 Май 2019 в 14:47