所以我有一个独特的问题。说我有以下代码:
List<Vector3> locations = new List<Vector3> ();
locations.add(new Vector3(1,1,0));
locations.add(new Vector3(1,2,0));
locations.add(new Vector3(1,3,0));
locations.add(new Vector3(2,1,0));
locations.add(new Vector3(3,2,0));
locations.add(new Vector3(3,8,0));
现在我想对这个列表进行排序,并基于以下事实删除项目:我只希望列表中每个表示的x值的y最低的项目。
因此,在排序代码之后,上面示例列表中仅有的Vector3是:
1,1,0
2,1,0
3,2,0
谢谢您的任何帮助!
这是我为获得所需的正确排序路径所做的工作。如果有更有效的方法,请告诉我。
List<int> index = new List<int> ();
index.Clear ();
foreach (Vector3 location in locations) {
foreach (Vector3 comparedLocation in locations) {
if (location == comparedLocation) {
continue;
}
if ((location.x == comparedLocation.x) && (location.y > comparedLocation.y)) {
int id = missingLocations.IndexOf (location);
index.Add (id);
}
}
}
index.Sort ();
index = index.Distinct ().ToList ();
for (int i = index.Count - 1; i >= 0; i--) {
int id = index [i];
locations.RemoveAt (id);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句