LINQ, итераторы, выбор и проекция - PullRequest
4 голосов
/ 17 декабря 2008

Я хотел бы использовать элегантность LINQ, поддерживая итератор ....

по существу

Class A
{
  int Position;
  string Name;
}

если у меня есть список строк, я хочу проецировать их на List<A>, но в проекции нужно указать позицию ...

List<string> names; //filled with strings

что-то вроде

List<A> foo = (from s in names select s).ToList();

но сделайте так, чтобы он итерировал и заполнил позицию ..

возможно ли это?

{{Position:0,Name: "name1"},{Position:1, Name: "name2"}, {Position:2, Name: "name3"}....}

1 Ответ

13 голосов
/ 17 декабря 2008

Вы можете сделать это:

    var listOfStrings = new List<string> {"name1", "name2", "name3", "name4"};
    var foo = listOfStrings.Select((value, position) => new {position, value}).ToList();

Позиция будет увеличена как начальный индекс 0, проверьте Выбор метода Перегрузка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...