2009-03-26 7 views
1
性能とコード・可読性ポイント・オブ・ビューの両方から、C#でデータテーブルをソートするための最良のは何

は、ADO.NETでのデータテーブルをソートするための最良の方法は何ですか

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

か:

personsDT.DefaultView.Sort = "PersonName ASC"; 

personsDTは、SharePointリストからビルドなので、SQLを(私はSQL SELECT文の中でクロードBY ORDERが最善の方法だと認識しています)を使用することは不可能です。パフォーマンスを考慮すると、OrderBy <>節がデータビューの並べ替えよりも遅くなる可能性があると私は心配しています。このようなパフォーマンスの影響を認識していますか?

答えて

4

最初のオプションを優先します。

1)コードの場合、読みやすさの観点から、ラムダは2番目のものよりもはっきりしていると思います。

2)最初のケースでは、あなたのエンティティをソートするために強い方法を使用しています。

3)2番目のケースでは、フィールドとその順序を文字列で渡しています。mmmmは好きではありません。

Go Lambdas !!!

よろしくお願いいたします。

1

質問の目的は何ですか?パフォーマンスはほとんど問題ではありません。もしそうでなければ、あなたの文脈でそれをテストする必要があります。私はあなたがSQLステートメントのソートを指定している場合は、それがSQLステートメントにあるべきだと思います。可能であればSQL文を文字列で構築することを避けることをお勧めします。あなたはどのように美的に好きですか?

+0

私はその質問が有効だと思います。 DataTableを埋めると、ソートされた「ビュー」を別々に提供する必要があります。なぜなら、ローカルで並べ替えることができればDBに戻ってしまうからです。 –

0

パフォーマンスが非常に重要な場合は、データを取得する前にSQL DBで並べ替えてください。鍋に私の2Cをスローするように

+0

ポスターは、データソースが共有ポイントリストであり、SQL ORDER BYメソッドを認識していますが使用できないことを示していますが、回答の前後に書かれているかどうかはわかりません。 – GenericMeatUnit

1

SQLの背景から来て、私は個人的に、より直感的なSQLの方法を見つける - それは、それに従わない理由ません。ラムダメソッドにはいくつかの推奨事項があります:

MRFerocius(欠落している 'o'意図的)は指摘しています - ラムダメソッドは強く型付けされています。それはいいことだ。

ソート基準をさらに複雑にする必要がある場合は、ラムダメソッドを使用すると、SQLメソッドでは不可能な追加の難解な条件に対処できます。

パフォーマンス面では、このような単純な条件の場合、ほぼ同等である必要があります。

関連する問題