6

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;
4

2 に答える 2

5

どうしてこれを見逃したのかわかりませんが、とにかくこれは機能します。

var newOrder = rows.OrderByDescending(x => x["Name"]);
于 2012-03-23T15:51:51.527 に答える
5

WooHooの答えはうまくいきませんDynamic.ExpandoObject; これは機能します:

var newOrder = rows.OrderByDescending(x =>((IDictionary<string,object>)x)["Name"]);
于 2015-07-07T08:02:52.637 に答える