当前位置:  开发笔记 > 编程语言 > 正文

C#数组移动项(非ArrayList/Generic List)

如何解决《C#数组移动项(非ArrayList/GenericList)》经验,为你挑选了1个好方法。

有一个对象是一个数组(不是arraylist或泛型),可以容纳一组任何东西......

[[One],[Two],[Three],[Four]]

想要将[Four]移动到[Two]前面,例如oldIndex = 3,newIndex = 1,那么结果将是......

[[One],[Four][Two],[Three]]

什么是在.NET 2.0中最有效的方法,例如

PropertyInfo oPI = ObjectType.GetProperty("MyArray", BindingFlags.Public | BindingFlags.Instance);
object ObjectToReorder = oPI.GetValue(ParentObject, null);
Array arr = ObjectToReorder as Array;
int oldIndex = 3;
int newIndex = 1;
//Need the re-ordered list still attached to the ParentObject

提前致谢



1> Wyzfen..:
void MoveWithinArray(Array array, int source, int dest)
{
  Object temp = array.GetValue(source);
  Array.Copy(array, dest, array, dest + 1, source - dest);
  array.SetValue(temp, dest);
}

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有