Используйте перегрузку Select
, которая обеспечивает индекс и значение.В этом случае я бы использовал AsEnumerable
, чтобы выйти из контекста базы данных, а это не совсем то место, где вы хотите выполнять эту работу:
string[] alphaOrdinals = { "A", "B", "C", "D", "E" };
var query = dataContext.Cars
.AsEnumerable()
.Select((car, index) => new InventoryItem {
Name = car.Name,
Price = car.Price,
UIElement = string.Format("Car {0} {1}",
car.Id,
alphaOrdinals[index])
}).ToList();
(Вы можете изменить alphaOrdinals
настрока без каких-либо других изменений в коде, кстати.)