Каков наилучший способ сортировки таблицы данных в ADO.NET? - PullRequest
1 голос
/ 26 марта 2009

Что лучше для сортировки таблицы данных в c #, как с точки зрения производительности, так и с точки зрения читаемости кода:

personsDT.OrderBy(person => person.PersonName);

или

personsDT.DefaultView.Sort = "PersonName ASC";

PersonDT создается из списка SharePoint, поэтому использовать SQL невозможно (я знаю, что наилучшим способом будет предложение ORDER BY в операторе SQL SELECT). Учитывая производительность, я обеспокоен тем, что предложение OrderBy <> может быть медленнее, чем сортировка в представлении данных. Вам известно о таких последствиях для производительности?

Ответы [ 4 ]

4 голосов
/ 26 марта 2009

Я предпочту первый вариант.

1) Что касается читабельности кода, я думаю, что лямбда яснее, чем вторая.

2) В первом случае вы используете строго типизированный способ сортировки вашей сущности, что хорошо.

3) Во втором случае вы передаете поле, а порядок в строке мммм не нравится.

Иди Лямбдас !!!

Привет!

1 голос
/ 04 февраля 2010

Чтобы бросить 2с в банк:

Исходя из SQL-фона, я лично нахожу SQL-способ более интуитивным, но это не повод для этого. У лямбда-метода есть несколько хороших рекомендаций:

Как указывает М.Р.Фероциус (отсутствует ли преднамеренное «о») - лямбда-метод строго типизирован. Это хорошо.

И еще: если ваши критерии сортировки станут более сложными, лямбда-метод позволит вам использовать дополнительные и эзотерические условия, которых нет у метода sql.

По производительности они должны быть примерно одинаковыми для простого условия, подобного этому.

1 голос
/ 26 марта 2009

Какова цель вопроса? Производительность почти наверняка не проблема; если нет, вам нужно проверить это в вашем контексте. Я думаю, что если вы указываете сортировку для оператора SQL, она должна быть в операторе SQL; и я предпочитаю избегать построения операторов SQL по возможности, если это возможно. Что тебе больше нравится в эстетическом плане?

0 голосов
/ 26 марта 2009

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

...