Ich habe ein Array von Accounts, die von unserer API zurückgegeben werden und die folgende Datenstruktur haben.Sortier-Array basierend auf der Eigenschaft des Objekts im inneren Array
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
}
]
}
];
Ich brauche dieses Accounts
Objekt auf den RoleOrder
für das Accounts
Objekt zu sortieren selbst und die RoleOrder
für das PersonRole
Objekt in jedem PersonRoles[]
Index.
Ich habe versucht, es mit LINQ zu tun, aber ich bin mir nicht sicher, warum es nicht richtig funktioniert.
Hier ist, was ich versuchte und was ich erwartet hatte.
IEnumberable<Account> sortedAccounts = accounts
.OrderBy(acct => acct.PersonRoles
.Where(role => role.PersNbr == 0001)
.Select(x => x.RoleOrder)).ToList();
I erwartet, dass es die Haupt accounts[]
vom PersonRoles[]
zu bestellen, wo die PersNbr
den gegebenen PersNbr gleich (0001
) und sortiert auf den RoleOrder
.
Also im Grunde möchte ich die accounts[]
basierend auf der RoleOrder
für eine bestimmte Person nur sortieren.
So auf Virginia
basierte Sortierung in Accounts[] accounts = [0000000001, 0000000003, 0000000002]
führt auf David
Gestützte Sortierung in Accounts[] accounts = [0000000003, 0000000001, 0000000002]
führen wird, was ich für LINQ haben nichts zu tun ist (Reihenfolge gleich bleibt), das mich denken Ich mache die Abfrage in der richtigen Reihenfolge.
Wie schreibe ich eine LINQ-Abfrage, oder muss ich sie in verschiedene Abfragen aufteilen?
Dies bietet keine Antwort auf die Frage. Sobald Sie genug [Reputation] (https://stackoverflow.com/help/whats-reputation) haben, können Sie [jeden Beitrag kommentieren] (https://stackoverflow.com/help/privileges/comment); Stattdessen [geben Sie Antworten, die keine Klärung durch den Fragesteller erfordern] (https://meta.stackexchange.com/questions/214173/why-doe-i-need-50-reputation-to-comment-what-can- i-do-stattdessen). - [Aus Bewertung] (/ review/low-quality-posts/18365520) – Rabbid76