[英]How to use local variable in linq query in C#?
I have an array of integers say int[] vals
. 我有一个整数数组说
int[] vals
。
I want to use linq query to get a list of points from this array of ints. 我想使用linq查询从这个int数组中获取一个点列表。
For example if i have array like this: 例如,如果我有这样的数组:
vals = new int[]{20,25,34};
I want my list of points as 我希望我的积分列表为
var points = List<Point>{new Point(1,20),new Point(2,25),new Point(3,34)};
I want to use a local variable which is incremented by 1 for all int values in my array which will be the x value of my point. 我想使用一个局部变量,对于我的数组中的所有int值,它将增加1,这将是我的点的x值。
How can I achieve this result using LINQ in C# ? 如何在C#中使用LINQ实现此结果?
var vals = new int[]{20,25,34};
var x = 1;
var points = vals.Select((val) => new Point(x++,val)).ToList();
Or a third option - get an ordinal enumeration and project using that and your original array. 或者第三个选项 - 使用它和原始数组获取序数枚举和项目。
var points = Enumerable.Range(1, vals.Count())
.Select(i => new Point(i, vals[i - 1])).ToList();
var vals = new int[] { 20, 25, 34 };
int i = 0;
var points = vals.ToList().ConvertAll(delegate(int v) { return new Point(++i, v); });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.