c# - 如何在多个集合中进行排序
问题描述
public class Test
{
public int id{get;set;}
public IEnumerable<Test1> test1{get;set;}
}
public class Test1
{
public int id{get;set;}
public IEnumerable<Test2> test2{get;set;}
}
public class Test2
{
public int id{get;set;}
public IEnumerable<Test3> test3{get;set;}
}
public class Test3
{
public int id{get;set;}
public string name{get;set;}
}
这就是我的模型的样子,我想使用名称列按此列表排序
IList<Test> test = ... ;
test = test .OrderBy(p => p.test1.select(o=>o.test2.Select(m => m.test3.Select(x => x.name))));
我正在为 cosmos db 中的列表进行排序
但它会引发一些错误,请有人帮我解决这个问题
{
"message": "Message: {\"errors\":[{\"severity\":\"Error\",\"message\":\"Unsupported ORDER BY clause. ORDER BY item expression could not be mapped to a document path.\"}]}\r\nActivityId: 3761139f-cc41-49a5-874e-1b62efa8a8d5, Microsoft.Azure.Documents.Common/2.7.0, Windows/10.0.18362 documentdb-netcore-sdk/2.8.1",
"version": 0,
"errorCode": null,
"result": null,
"errors": []
}
解决方案
请检查此代码,它的工作
IList<Test> test = new List<Test>() { new Test() { id=1, test1=new List<Test1>() {
new Test1(){ id=1, test2=new List<Test2> (){ new Test2() { id=1, test3=new List<Test3> (){
new Test3() { id=1,name="Hello"} ,
new Test3() { id=2,name="welcome"} }
} } } }
} };
test = test.OrderBy(p => p.test1.Select(m => m.test2.Select(x => x.test3.Select(a => a.name)))).ToList();
推荐阅读
- javascript - 如何编写通过 websocket 发送的文件?
- ruby-on-rails - 如何使用 Nokogiri 解析带有非对标签的 XML
- javascript - 从 phpadmin 中删除记录
- php - 如何从 PHP 中的关联数组构建多维数组树?
- android - 以编程方式为 ImageView 设置不同的角半径
- c# - 如何在 .net 核心中为 aws cognito Oauth2 替换 Claimsprincipal?
- matlab - x=[-300:1.1:300]'; 是什么意思?意思是?
- php - 从 curl 结果中获取一个值
- angular - ng命令的Mac问题
- android - 为什么下面的 OnboardingSupportFragment 在 android 中不起作用?