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 回答