gpt4 book ai didi

c# - 是否可以迭代两个容器?

转载 作者:太空宇宙 更新时间:2023-11-03 18:14:32 25 4
gpt4 key购买 nike

我有以下代码:

        List<Point> xyData = new List<Point>();
for (int i = 0; i < xdata.Length;i++ )
{
xyData.Add(new Point(xdata[i], ydata[i]));
}


我想同时遍历具有相同长度的xdata和ydata

现在,我可以添加另一个计数器,

        int i=0;
List<Point> xyData = new List<Point>();
foreach (double x in xdata){
var y = ydata[i];
xyData.Add(new Point(x, y));
}


但是我想写这样的东西(伪代码,不编译)

        List<Point> xyData = new List<Point>();
foreach (double x in xdata, double y in ydata){
xyData.Add(new Point(x, y));
}


是否有一种优雅的方式来实现我想要的?

编辑:

我的意思是我想获得这样的列表:
[x0,y0],[x1,y1],[x2,y2]。
抱歉,含糊不清。

最佳答案

使用LINQ。
如果您想要笛卡尔积(x1,y1)(x1,y2)(x2,y1)(x2,y2)

var xyData = xData.SelectMany(yData,(x,y)=>new Point(x,y)).ToList();

如果要合并列表(x1,y1)(x2,y2)
var xyData = xData.Zip(yData,(x,y)=>new Point(x,y)).ToList();

关于c# - 是否可以迭代两个容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8777222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com