在LINQ Select期间访问递增的整数

Sha*_*awn 2 c# vb.net

Dim project = new Project(1)
Dim tasks = Task.GetTasks()
Return <?xml version="1.0" encoding="UTF-8"?>
               <Project xmlns="http://schemas.microsoft.com/project">
                   <Name><%= project.name %></Name>
                   <Tasks>
                       <%= tasks.Select(Function(t) _
                           <Task>
                               <ID><%= tasks.IndexOf(t) + 1 %></ID>                               
                           </Task> _
                           ) %>
                   </Tasks>
               </Project>
Run Code Online (Sandbox Code Playgroud)

我试图tasks.IndexOf(t) + 1用一些更简单的东西来取代.这有什么内置功能吗?

Hrmm xml文字在这里似乎没有很好的翻译....

Meh*_*ari 5

有一个重载Enumerable.Select支持传递索引和对象本身.你可以使用那个:

Dim project = new Project(1)
Dim tasks = Task.GetTasks()
Return <?xml version="1.0" encoding="UTF-8"?>
               <Project xmlns="http://schemas.microsoft.com/project">
                   <Name><%= project.name %></Name>
                   <Tasks>
                       <%= tasks.Select(Function(t, idx) _
                           <Task>
                               <ID><%= idx + 1 %></ID>                               
                           </Task> _
                           ) %>
                   </Tasks>
Run Code Online (Sandbox Code Playgroud)