Ich habe eine Liste von "ClientContacts" --- die entweder einen Nachnamen (im Falle eines Menschen) oder einen EntityName (im Falle eines Kontakts für allgemeine Verwendung, wie techsupport @) haben. mycompany.com).Sortieren einer Liste nach zwei Variablen
Was ich tun möchte, ist diese Liste alphabetisch nach LastName, und in dem Fall, wo keine LastName existiert (mit anderen Worten, ein EntityName existiert), diesen EntityName als LastName zu behandeln, und die Sortierung als ob es fortsetzen waren ein Nachname.
Damit die gewünschte Ergebnis wie folgt aussieht:
- Bond James
- Customer Support
- Tore Bill
- Tech Support
- Williams Robin
Dies führt zu einem Absturz, da einige ClientContacts, die keinen LastName haben, auftauchen.
clientContactList.Sort(
delegate(ClientContact c1, ClientContact c2)
{ return c1.LastName.CompareTo(c2.LastName); });
und die folgenden erlaubt es mir, ohne abzustürzen, um durchzukommen, und es sortiert sie durch ClientContact EntityName erste und dann LastNames:
list.Sort(delegate(ClientContact c1, ClientContact c2) {
try
{
return c1.LastName.CompareTo(c2.LastName);
}
catch
{
try
{
return c1.EntityName.CompareTo(c2.LastName);
}
catch
{
return c1.EntityName.CompareTo(c2.EntityName);
}
}
});
ergibt:
- Customer Support
- Technische Unterstützung
- Bond James
- Tore Bill
- Williams Robin
Wie kann ich meine Liste, wie das oben gewünschte Ergebnis sehen sortiert?
Wenn Sie sagen, "nicht", meinst du, der Wert ist null? Oder ist eine leere Zeichenfolge auch möglich? –