按名称对对象数组进行排序(多维)

本文关键字:排序 多维 数组 对象 | 更新日期: 2023-09-27 17:57:52

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

如何构造阵列的示例阵列:

     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[i])[0]的值对"o"进行排序。

感谢

按名称对对象数组进行排序(多维)

我想我明白了。下面的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;}
}

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