Linq не следует использовать для изменения коллекций. Вы можете использовать Select
, чтобы создать новый список с индексами.
var dd = myList.Select((x, i) => i).ToList();
Что касается Вашего комментария
Я хочу работать на значениях х основанные на нем индекса.
Это условно можно сделать с помощью foreach
цикла, но можно использовать Select
var dd = items.Select((x, i) => i % 42 == 0 ? 10 : x);
или в более общем
public static class EnumerableExtensions
{
public static IEnumerable<T> Replace<T>(
this IEnumerable<T> collection,
Func<T, bool> predicate,
T value
)
{
return collection.Select((x, i) => predicate(x) ? value : x);
}
public static IEnumerable<T> Replace<T>(
this IEnumerable<T> collection,
Func<T, int, T> predicate,
T value
)
{
return collection.Select((x, i) => predicate(x, i) ? value : x);
}
}
var dd = items.Replace((x, i) => i % 42 == 0, 10);
Что вы имеете в виду под «пустой»? 'dd' является' IEnumerable <'a> ', поэтому вам нужно выполнить итерацию для доступа к любым элементам в нем. – Lee
Что вы на самом деле пытаетесь сделать? список от 0 до n? funny guy –
nah, я хочу использовать значения x на основе этого индекса. Как x = 10, если индекс кратен 42, – Naresh