如何按名称对对象数组进行排序。
如何构造数组的示例:
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'进行排序。
谢谢
答案 0 :(得分:1)
我想我明白了。下面的linq应该做你需要的。
var sortedResult = o.OrderBy(x => ((object[])x)[0]).ToArray();
但是,我会考虑使用differt数据结构。你能创建一个新类型来封装第二个数组代表的内容吗?例如:
class MyObject
{
Safe Title {get; set;}
Safe Column5 {get; set;}
String Column7 {get; set;}
double Column9 {get; set;}
double Column12 {get; set;}
}
然后,您可以使用SortedList存储新对象。