2012-03-23 8 views
4

私はExpandoObjectsの辞書を含むリストを持っています。私はこれをグリッドにバインドしていますが、今はリストをソートしたいと思います。 リストを並べ替える方法ExpandoObjectsを含む

 var rows = new List<dynamic>(); 
     for (int i = 0; i < 1000; i++) 
     { 
      dynamic expandy = new ExpandoObject(); 
      var dictionary = (IDictionary<string, object>)expandy; 

      dictionary.Add("ID", i); 
      dictionary.Add("Name", "Name" + i); 
      rows.Add(dictionary); 
     } 

だから、テスト、私は行をソートする方法を上記のコードを見て(昇順または降順)「ID」または「名前」または私は動的に追加、他のプロパティに言いますか?

もう少し情報ですが、私はこれをこのように並べ替えることを検討しています。

  var newOrder = from r in rows 
        orderby ("Name") ascending 
        select r; 
+2

なぜあなたは常にそれに辞書を置く場合は動的にする? –

+0

私はそれをvar rows = new Listに変更すると仮定します。新しいリスト>どのようにソートしますか? – WooHoo

+0

どのようにソートしますか?辞書のどの値を使いたいですか? –

答えて

4

私はこれを逃したが、とにかく、これはどのように動作するかわからない、

var newOrder = rows.OrderByDescending(x => x["Name"]); 
2

Dynamic.ExpandoObjectのために動作しませんWooHooの答え。これは動作します:

var newOrder = rows.OrderByDescending(x =>((IDictionary<string,object>)x)["Name"]); 
+0

「これはDynamic.ExpandoObjectでは動作しません」という意味はどうですか?これは何ですか";あなた自身の答えか、別の答えを参照していますか? – Cleb

+0

私はコードvar newOrder = rows.OrderByDescending(x => x ["Name"])を参照していました。 Dynamic.ExpandoObjectで使用されている場合。 –

+0

あなたは上記のWooHooの答えを意味しますか? – Cleb

関連する問題