开发者

How to use local variable in linq query in C#?

开发者 https://www.devze.com 2023-04-01 00:17 出处:网络
I have an array of integers say int[] vals. I want to use linq query to get a list of points from this array of ints.

I have an array of integers say int[] vals.

I want to use linq query to get a list of points from this array of ints.

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.

How can I achieve this result usi开发者_开发知识库ng LINQ in C# ?


You could use the 2nd overload of Select:

var list = vals.Select((val, idx) => new Point(idx + 1, val)).ToList();

where idx is the index of val in vals.


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); });
0

精彩评论

暂无评论...
验证码 换一张
取 消