我们有一个包含字符串的基本集合,我们想使用 LINQ 基于从数据库返回的 int 加入这个集合(在同一个 linq 语句中),但是集合没有这样的“索引”,所以我们是希望我们可以简单地引用集合的索引,即。项目放置在集合中的位置。
简单来说,在 linq 之外,我们会做
string MyString = MyCollection[MyIndex];
但这在 LINQ 中不受支持。
任何帮助,将不胜感激。
要在 LINQ 查询中引用索引,您可以利用以下重载Select()
或Where()
collection.Select((item, index) => new { item, index })
.Select(p => /* now you can refer to p.item and p.index */);
collection.Where((item, index) => index == indexFromDb);
LINQ 还提供ElementAt() / ElementAtOrDefault()方法,允许通过索引访问单个项目
如果您的意思是您的 Linq 集合不可索引(可通过索引访问,例如MyCollection[0]
),您可以获取结果集合并调用ToList()
or ToArray()
。结果列表(或数组)确实有一个索引器。