C# 按名称对对象数组排序(多维)

C# 按名称对对象数组排序(多维),c#,arrays,list,sorting,object,C#,Arrays,List,Sorting,Object,如何按名称对对象数组进行排序 数组是如何构造的示例数组: object[] o = new object[items.Count+(row-exists)]; int i = 0; for(i=0; i<items.Count;i++) { XmlNode item = items[i]; o[i] = new object[5]; ((object[])o[i])[0] = Safe(item, "ows_Title");

如何按名称对对象数组进行排序

数组是如何构造的示例数组:

     object[] o = new object[items.Count+(row-exists)];
     int i = 0;
     for(i=0; i<items.Count;i++)
     {
    XmlNode item = items[i];

    o[i] = new object[5];
    ((object[])o[i])[0] = Safe(item, "ows_Title");
    ((object[])o[i])[1] = Safe(item, "ows_Column5");
    ((object[])o[i])[2] = ((string)Safe(item, "ows_Column7")).Trim(new char[] {'\''});
    ((object[])o[i])[3] = Convert.ToDouble(Safe(item, "ows_Column12"), provider);
    ((object[])o[i])[4] = Convert.ToDouble(Safe(item, "ows_Column9"), provider);
}
object[]o=新对象[items.Count+(行存在)];
int i=0;

对于(i=0;i我想我理解。下面的linq应该满足您的要求

var sortedResult = o.OrderBy(x => ((object[])x)[0]).ToArray();
但是,我会考虑使用不同的数据结构。能否创建一个新类型来封装第二个数组所代表的内容?例如:

class MyObject
{
  Safe Title {get; set;}
  Safe Column5 {get; set;}
  String Column7 {get; set;}
  double Column9 {get; set;}
  double Column12 {get; set;}
}

然后,您可以使用存储新对象。

无法回答您的问题。您可以添加吗?数组“o”包含具有新数组的对象,对吗?我希望根据值/(字符串)对“o”进行排序第二个数组的索引0。我不确定我是否能更好地解释我自己。为什么不将对象存储在通用的SortedList中,对象的主键作为列表的键,或者根据您的要求选择键?仍然无法获得您的要求。所以o在I的每次迭代中都会有不同的排序?谢谢IndigoDelta,看起来您了解我需要什么。不幸的是,我没有访问linq的权限,我使用的是2.x框架。我很遗憾这个人没有访问linq的权限。如果需要,你可以编写自己的排序算法。看看。有一个关于排序算法的库,可能会对你有所帮助