LINQ使用索引连接到集合

时间:2013-03-07 11:21:44

标签: c# linq

我们有一个包含字符串的基本集合,我们希望使用LINQ基于从数据库返回的int(在相同的linq语句中)加入此集合,但该集合没有这样的“索引”,所以我们希望我们可以简单地引用集合的索引,即。物品放置在集合中的位置。

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

string MyString = MyCollection[MyIndex];

但LINQ中不支持此功能。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

要在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()方法,允许通过索引访问单个项目

答案 1 :(得分:0)

如果您的意思是您的Linq集合不可编入索引(可通过索引访问,例如MyCollection[0]),则可以获取生成的集合并在其上调用ToList()ToArray()。结果列表(或数组)确实有一个索引器。