私のAPIから返されるアカウントの配列は、次のデータ構造を持っています。内部配列のオブジェクトのプロパティに基づいて配列を並べ替える
Accounts[] accounts = [
{
AccountNumber: 0000000001,
PrimaryPerson: Virginia,
PrimaryPersonNumber: 0001,
PersonRoleCode: "OWN",
PersonRoleDescription: "Owner",
RoleOrder: 1
PersonRoles: [
{
AccountRoleCode: "CO",
AccountRoleDescription: "Co-Owner",
PersonName: "David",
PersonNumber: 0002,
RoleOrder: 2
},
{
AccountRoleCode: "POA",
AccountRoleDescription: "Power of Attorney",
PersonName: "Clark",
PersonNumber: 0003,
RoleOrder: 6
}
]
},
{
AccountNumber: 0000000002,
PrimaryPerson: Clark,
PrimaryPersonNumber: 0003,
PersonRoleCode: "OWN",
PersonRoleDescription: "Owner",
RoleOrder: 1
PersonRoles: [
{
AccountRoleCode: "CO",
AccountRoleDescription: "Co-Owner",
PersonName: "Virginia",
PersonNumber: 0001,
RoleOrder: 2
},
{
AccountRoleCode: "POA",
AccountRoleDescription: "Power of Attorney",
PersonName: "David",
PersonNumber: 0002,
RoleOrder: 6
}
]
},
{
AccountNumber: 0000000003,
PrimaryPerson: David,
PrimaryPersonNumber: 0002,
PersonRoleCode: "OWN",
PersonRoleDescription: "Owner",
RoleOrder: 1
PersonRoles: [
{
AccountRoleCode: "CO",
AccountRoleDescription: "Co-Owner",
PersonName: "Clark",
PersonNumber: 0003,
RoleOrder: 2
},
{
AccountRoleCode: "CO",
AccountRoleDescription: "Co-Owner",
PersonName: "Virginia",
PersonNumber: 0001,
RoleOrder: 2
},
{
AccountRoleCode: "POA",
AccountRoleDescription: "Power of Attorney",
PersonName: "Virginia",
PersonNumber: 0001,
RoleOrder: 6
}
]
}
];
私はAccounts
オブジェクト自体のRoleOrder
、および各PersonRoles[]
指標でPersonRole
オブジェクトのRoleOrder
に基づいて、このAccounts
オブジェクトをソートする必要があります。
私はLINQでそれをしようとしましたが、なぜ正しく動作しないのか分かりません。
ここに私が試したことと、それが期待したことがあります。
IEnumberable<Account> sortedAccounts = accounts
.OrderBy(acct => acct.PersonRoles
.Where(role => role.PersNbr == 0001)
.Select(x => x.RoleOrder)).ToList();
それはPersNbr
が所定PersNbr(0001
)に等しく、RoleOrder
でソートPersonRoles[]
メインaccounts[]
を注文することが期待。
基本的に私は特定の人のためにRoleOrder
に基づいてaccounts[]
をソートしたいと思います。だから、Virginia
に基づいてソート
はDavid
に基づいてソートすると、私は考えさせるれ、(順序は同じまま)何もしていない私はLINQのために持っているAccounts[] accounts = [0000000003, 0000000001, 0000000002]
になりますAccounts[] accounts = [0000000001, 0000000003, 0000000002]
になります私は正しい順序で質問をしています。
これを行うにはどうすればよいですか、それとも別のクエリに分割する必要がありますか?
これは質問への回答を提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-代わりに)。 - [レビューの投稿](/レビュー/低品質の投稿/ 18365520) – Rabbid76