如何在C#中使用linq查询中的局部变量?

Emb*_*rja 4 c#

我有一个整数数组说int[] vals.

我想使用linq查询从这个int数组中获取一个点列表.

例如,如果我有这样的数组:

vals = new int[]{20,25,34}; 
Run Code Online (Sandbox Code Playgroud)

我希望我的积分列表为

var points = List<Point>{new Point(1,20),new Point(2,25),new Point(3,34)};
Run Code Online (Sandbox Code Playgroud)

我想使用一个局部变量,对于我的数组中的所有int值,它将增加1,这将是我的点的x值.

如何在C#中使用LINQ实现此结果?

dig*_*All 9

您可以使用Select的第二个重载:

var list = vals.Select((val, idx) => new Point(idx + 1, val)).ToList();
Run Code Online (Sandbox Code Playgroud)

其中,idxindexvalvals.