【发布时间】:2016-09-06 12:07:54
【问题描述】:
假设我有这个数据:
列表:
- ListOfPoints = 一个
- ListOfPoints = b
- ListOfPoints = c
- ListOfPoints = d
现在我要做的是:在每个列表中交换两个点(a、b、c、d),不幸的是它不起作用。
我尝试了以下代码:
List<List<Point3d>> currentGeneration = handoverPopulation.ToList();
foreach(List<Point3d> generation in currentGeneration)
{
int index1;
int index2;
Random r = new Random();
index1 = r.Next(0, generation.Count);
index2 = r.Next(0, generation.Count);
if(index1 != index2)
{
Point3d cache = generation[index1];
generation[index1] = generation[index2];
generation[index2] = cache;
}
}
如何同时交换多个列表中的两个点,或者为什么我的方法不起作用?
感谢您的帮助。
【问题讨论】:
-
旁注:对于局部变量,
generation比Var更好。您可能需要阅读 c# 的命名约定。 -
没错,我应该更改局部变量的名称。当我完成基础程序后,我仍然会在最后更改一些内容。
-
您的代码遇到了什么问题?
-
我不知道为什么,但是这段代码没有交换任何列表(a、b、c、d)中的任何点。交换前后的列表仍然相同。让我发一张图片。 @对称龙
标签: c# list swap grasshopper