我们有一个包含字符串的基本集合,我们希望使用LINQ基于从数据库返回的int(在相同的linq语句中)加入此集合,但该集合没有这样的“索引”,所以我们希望我们可以简单地引用集合的索引,即。物品放置在集合中的位置。
简单来说,除了linq之外我们会做
string MyString = MyCollection[MyIndex];
但LINQ中不支持此功能。
任何帮助都将不胜感激。
答案 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()
。结果列表(或数组)确实有一个索引器。