2017-08-02 100 views
-1

比方说,我已经和这条线的类型X一个List<X> lxLAMBDA X =>在列表<X>:如何让列表x的位置

Dict<string, X> d = lx.ToDictionary(x => F(Z.g(x).ToString()), x => x) 

其中Z是一种静态成员函数Y g(X x)其中Y是实现ToString的类型。

现在我将Y g(X x)更改为Y g(X x, T t),其中T是某种类型。假设我有一个List<T> ltCountlx。我想我的前行变成(警告,伪代码)线:

Dict<string, X> d = lx.ToDictionary(x => F(Z.g(x, something).ToString()), x => x) 

其中表达something我进去lxx的指数i,指数到我联想lt[i]

+2

请做一个实际的[mcve],你的缩写方法名称和变量使你的代码很难解析。为什么缩写'Dict'? – DavidG

+0

@CodeCaster如果它是重复的,我会很高兴看到最初的同一个问题,因为我没有找到它后找到它...... Thx在事先 –

+0

在您问题的顶部的黄色框。 – CodeCaster

回答

0

您可以使用Select到集合中获得该项目的索引:

lx.Select((item, index) => new { Item = item, Index = index }) 
    .ToDictionary(...); 

我在这里构建一个匿名类型来保存这两个项目和指标,您可以在下面的lambda表达式使用。

+0

即使'lt [i]'出现在'lt'中的多个位置,它会给我正确的索引吗? ('T = string'在我的情况下。) –

+1

@ ujsgeyrr1f0d0d0r0h1h0j0j_juj:这只是遍历列表并为每个项目创建一个元组(项目,索引)。所以列表中的每个项目都会被处理,是的。 – Groo

+0

不知道这是什么意思。你能测试这段代码,看看你是否期望这是什么? –

相关问题