Wie kann ich ein Array von Accounts
sortieren, das nach einem Array von PersonRoles
sortiert sein muss, aus dem hervorgeht, welche Rolle eine verknüpfte Person mit diesem Konto hat?Array nach einer Variablen sortieren, die mehrere Werte enthalten kann
Zum Beispiel
Bob ist der Eigentümer (O
) Rechnungs 12
, die Co-Unterzeichner (CO
) Rechnungs 123
, und der Empfänger der Rechnung 1234
.
Joe ist der Eigentümer (O
) Rechnungs 123
und Konto 1234
Die Begünstigte (BE
) Rechnungs 12
.
Wie würde ich das Array von Accounts
für Bob in der Reihenfolge des Eigentümer sortieren (O
) zuerst, dann Co-Unterzeichner ('CO'), dann Begünstigt (BE
) in dieser Reihenfolge.
Accounts Objektstruktur
Accounts
{
AccountNumber: 12,
PersonRoles: [
{
AccountRoleCode: "O",
AccountRoleDescription: "Owner",
Person: "Bob"
},
{
AccountRoleCode: "CO",
AccountRoleDescription: "Co-Signer",
Person: ""
},
{
AccountRoleCode: "BE",
AccountRoleDescription: "Beneficiary",
Person: "Joe"
},
],
Balance: 5.00
},
{
AccountNumber: 123,
PersonRoles: [
{
AccountRoleCode: "O",
AccountRoleDescription: "Owner",
Person: "Joe"
},
{
AccountRoleCode: "CO",
AccountRoleDescription: "Co-Signer",
Person: "Bob"
},
{
AccountRoleCode: "BE",
AccountRoleDescription: "Beneficiary",
Person: null
},
],
Balance: 100.00
},
{
AccountNumber: 1234,
PersonRoles: [
{
AccountRoleCode: "O",
AccountRoleDescription: "Owner",
Person: "Joe"
},
{
AccountRoleCode: "CO",
AccountRoleDescription: "Co-Signer",
Person: null
},
{
AccountRoleCode: "BE",
AccountRoleDescription: "Beneficiary",
Person: "Bob"
},
],
Balance: 10000000.00
}
ursprüngliche Array von Accounts unter Bob aufgeführt zurückgegeben von API.
[1234, 12, 123]
gewünschte Anordnung sortiert.
[12, 123, 1234]
Mein erster Ansatz ist LINQ auf dem Array zu verwenden, aber ich bin nicht sicher, wie durch die Accounts[]
und dann Schleife durch die PersonRoles[]
Schleife der Accounts[]
zu sortieren basierend auf den PersonRoles[]
.
Benötigt dies eine doppelte LINQ-Abfrage? Oder wäre ein anderer Ansatz besser?
Verwenden Array.Sort (Array, IComparer): https://msdn.microsoft.com/en-us/library/aw9s5t8f (v = vs.110) .aspx – Gus