In einer Liste von Ländern, die in alphabetischer Reihenfolge angezeigt werden müssen, müssen Sie United States an die Spitze der Liste setzen. Wie wirst du das tun?
Ich antwortete, indem ich sagte, dass ich eine Tabellenstruktur so haben werde, dass die USA bei id-0 sind. Der Rest der Länder ist in alphabetischer Reihenfolge aufgelistet.
Wenn ich also vom Tisch hole, mache ich ein " SELECT CountryName from tableOfCountries ORDER by ID
"
Ich bin mir nicht sicher, ob der Interviewer das hören wollte. Also schlug ich eine andere Option vor, um ein Land-Array mit den USA als erstem Element zu bevölkern. Dann werden die restlichen Elemente aus dem Resultset der Abfrage gefüllt.
%Vor%Dadurch wird sichergestellt, dass die USA nicht zweimal ausgewählt werden.
Auch der Interviewer war mit dieser Option nicht zufrieden. Also fragte er mich, ob ich eine andere Option hätte. Dann habe ich eine Textdatei auf dem Webserver mit der Werteliste angegeben.
Haben Sie weitere Möglichkeiten?
Lassen Sie eine andere int-Spalte in der Landtabelle mit dem Vorrang.
Weisen Sie den Vereinigten Staaten eine Priorität von mehr als 1 zu und lassen Sie alle anderen Länder auf 0 stehen.
Ihr SQL würde dann wie folgt aussehen:
%Vor%Damit können Sie dies später bei Bedarf skalieren.
Ich würde ID auf diese Weise sicherlich nicht missbrauchen, wenn ich es vermeiden könnte.
Man könnte den Ländern Prioritäten setzen und dann:
%Vor%Alternativ, warum haben Sie es an der Spitze? Ich würde vorschlagen, die Logik so zu ändern, dass sie in alphabetischer Reihenfolge bleibt, aber US war die Standardauswahl, bis sie geändert wurde.
Eine andere Möglichkeit wäre, Ihre Liste von Zuständen zu erhalten und sie dann in eine Datenansicht zu filtern, mit Ausnahme der Standardelemente. Setzen Sie dann die Listensteuerungseigenschaft AppendDataBoundItems auf true. Fügen Sie Ihre Elemente zum Listensteuerelement hinzu und führen Sie dann eine Datenabfrage für die Datenansicht durch.
Dies hat den Effekt, dass Ihre Standardwerte nicht gelöscht werden, wenn die Datenindikation auftritt.
Wenn dies in C # ist, ignorieren Sie, wie die Daten vom Server zurückkommen, legen Sie sie in einen bestimmten Typ und implementieren IComparable für den angegebenen Typ. Das Drop-Down-Menü hält sie dann entsprechend, wie Sie in der CompareTo-Methode angeben können, dass der US-Typ der "Größere" der anderen Länder ist.
%Vor%BEARBEITEN: Tatsächlich ist dies in C # basierend auf den Tags des OPs. Warum der Fokus auf das Backend für die Präsentation stattfindet, ist jenseits meiner.