我需要为一个类似于下面这样的LINQ查询构建表达式树:
collection.OrderBy(e => ((MyObject)e["PropertyIndex"]).dictionary.Where(k => k.Key == "keyName").Select(k => k.Value).Single());
我看了这个链接,它解释了如何链接OrderBy方法。但我不知道如何使用表达式树在OrderBy中添加Where。
更新:
我需要动态地在内存中对数据进行排序。因此Linq查询可能看起来像这样:
collection.OrederBy(field1).ThenByDescending(field2).ThenBy(field3)
我只知道运行时需要按多少个字段排序。任何一个fieldX都可以是复杂对象。当然,对象的类型将在运行时知道。其中一个对象的结构就像你在LINQ查询中看到的那样。它有一个字典,我必须按特定的键进行排序。在我的情况下,字典包含本地化数据,例如:
{{"en-US", "word (en)"}, {"es-ES", "word (es)"} , ....}
我需要按特定语言进行排序。