我有一个包含对象数组的静态类。
public static Waypoint[] AtoB
{
get
{
return new Waypoint[] {
new Waypoint(49.251f,-851.837f),
new Waypoint(66.7397f,-843.165f),
new Waypoint(77.8777f,-825.462f)
};
}
}
现在我想创建另一个名为BtoA的Waypoint数组,它与AtoB相同,但顺序相反。如下所示:
public static Waypoint[] BtoA
{
get { return AtoB.Reverse(); }
}
这可能吗?
答案 0 :(得分:6)
您可以使用ToArray()分机号码将反向序列保存到新阵列:
return AtoB.Reverse().ToArray();
在这种情况下,你将在内存中有两个数组 - 你将有AtoB
属性返回的数组,然后你将为该数组创建反向迭代器,最后你将反向序列保存到全新数组。
或者您可以使用Array.Reverse(array)反转原始数组:
var array = AtoB;
Array.Reverse(array);
return array;
在这种情况下,您将拥有在AtoB
属性中创建的单个数组 - 您只需反转该数组实例的项目。
注意:您的代码无效,因为Reverse()扩展名创建的ReverseIterator
不是数组 - 它的类型为IEnumerable<Waypoint>
。因此,您还可以选择将BtoA
属性的类型更改为IEnumerable<Waypoint>
。
答案 1 :(得分:0)
好吧,使用Enumerable.Reverse功能:
public static Waypoint[] BtoA
{
get { AtoB.Reverse().ToArray();;
}
不要忘记添加using语句:
using System.Linq