如何对包含ExpandoObjects </dynamic>的List <dynamic>进行排序

时间:2012-03-23 14:48:56

标签: expandoobject

我有一个包含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 :(得分:4)

不确定我是如何错过这个但无论如何这都有效,

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

答案 1 :(得分:4)

WooHoo的回答不适用于Dynamic.ExpandoObject;这有效:

var newOrder = rows.OrderByDescending(x =>((IDictionary<string,object>)x)["Name"]);
相关问题