Сортировка массива объекта по имени (многомерный) - PullRequest
2 голосов
/ 27 мая 2011

как я могу отсортировать массив объектов по имени.

Пример того, как массив создается массив:

     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);
}

я хочу, чтобы 'o' сортировался на основезначение ((object []) o [i]) [0].

Спасибо

1 Ответ

1 голос
/ 27 мая 2011

Мне кажется, я понимаю. Линк ниже должен делать то, что вам нужно.

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 для хранения новых объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...