Nic*_*ick 8 c# linq linq-to-sql asp.net-mvc-3
在使用LINQ投影项目时,是否有一种提供"自动增量"样式索引列(来自1..x)的好方法?
作为一个基本的例子,我正在寻找下面的索引列,从1到列表中的项目数.
var items = from s1 in list
select new BrowsingSessionItemModel { Id = s1.Id, Index = 0 };
Run Code Online (Sandbox Code Playgroud)
迭代列表将是一个简单的选择,但我想知道是否有更好的方法来做到这一点?
Dar*_*rov 13
你不能用LINQ表达式做到这一点.您可以使用以下.Select扩展方法:
var items = list.Select((x, index) => new BrowsingSessionItemModel {
Id = x.Id,
Index = index
});
Run Code Online (Sandbox Code Playgroud)
您可以使用其重载Select来为投影提供索引:
var items = list.Select((value, index) => new BrowsingSessionItemModel {
Id = value.Id,
Index = index
});
Run Code Online (Sandbox Code Playgroud)
请注意,此重载没有查询表达式支持.如果你实际上是从数据库中获取值(目前还不清楚是否list真的是这样List<T>),你应该确保你有一个合适的顺序,否则结果有些随意.
| 归档时间: |
|
| 查看次数: |
10337 次 |
| 最近记录: |