我有一些JSON需要在C#中进行排序。我正在尝试使用System.Linq.Dynamic
对JObject
列表进行排序,但是我无法让它与Newtonsoft.Json.Linq.JObject
的实例一起工作。
以下代码可行:
public class Row
{
public String Column1 { get; set; }
public Int32 Column2 { get; set; }
}
var rows = new List<Row>();
rows.Add(new Row { Column1 = "B", Column2 = 2 });
rows.Add(new Row { Column1 = "B", Column2 = 1 });
rows.Add(new Row { Column1 = "A", Column2 = 2 });
rows.Add(new Row { Column1 = "A", Column2 = 1 });
var sortedRows = rows.AsQueryable().OrderBy("Column1, Column2");
这不会:
var rows = new List<JObject>();
var row1 = new JObject();
row1["Column1"] = "B";
row1["Column2"] = 2;
rows.Add(row1);
var row2 = new JObject();
row2["Column1"] = "B";
row2["Column2"] = 1;
rows.Add(row2);
var row3 = new JObject();
row3["Column1"] = "A";
row3["Column2"] = 2;
rows.Add(row3);
var row4 = new JObject();
row4["Column1"] = "A";
row4["Column2"] = 1;
rows.Add(row4);
var sortedRows = rows.AsQueryable().OrderBy("Column1, Column2");
//System.Linq.Dynamic.ParseException : No property or field 'Column1' exists in type 'JObject'
我该如何按动态数量的属性对 JObject
实例进行排序?