在c#中使用LINQ自动增加泛型列表
本文关键字:增加 泛型 列表 LINQ | 更新日期: 2023-09-27 18:11:10
在使用LINQ投影项目时,是否有一种很好的方法来提供"自动增量"样式的索引列(从1..x) ?
作为一个基本的例子,我正在寻找下面的索引列从1到列表中的项数。
var items = from s1 in list
select new BrowsingSessionItemModel { Id = s1.Id, Index = 0 };
遍历列表将是一个简单的选择,但我想知道是否有更好的方法来做到这一点?
对于LINQ表达式不能这样做。您可以使用以下.Select
扩展方法:
var items = list.Select((x, index) => new BrowsingSessionItemModel {
Id = x.Id,
Index = index
});
您可以使用Select
的重载,它也提供了投影的索引:
var items = list.Select((value, index) => new BrowsingSessionItemModel {
Id = value.Id,
Index = index
});
注意,没有查询表达式支持这种重载。如果您实际上是从数据库中获取值(尚不清楚list
是否真的是List<T>
),您可能应该确保您有适当的排序,否则结果有些武断。