LINQ连接到使用索引的集合

本文关键字:索引 集合 连接 LINQ | 更新日期: 2023-09-27 18:02:47

我们有一个包含字符串的基本集合,我们想使用LINQ根据从数据库返回的int(在相同的LINQ语句中)连接到这个集合,但是集合没有这样的"索引",所以我们希望我们可以简单地引用集合的索引。

简单来说,在linq之外,我们会做

string MyString = MyCollection[MyIndex];

但是在LINQ中不支持

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()ToArray()。生成的列表(或数组)确实有一个索引器。