web-dev-qa-db-ja.com

List <string>を注文するにはどうすればよいですか?

私はこれをList<string>持っています:

IList<string> ListaServizi = new List<string>();

アルファベット順で昇順で注文するにはどうすればよいですか?

101
markzzz
ListaServizi = ListaServizi.OrderBy(q => q).ToList();
207
daryal

Sort を使用できます

List<string> ListaServizi = new List<string>() { };
ListaServizi.Sort();
38
Richard Dalton

Sortを示唆する他の答えは正しいですが、ストレージの場所がIList<stringと入力されているという事実を見逃しているようです。 Sortはインターフェイスの一部ではありません。

ListaServiziが常にList<string>を含むことがわかっている場合は、宣言された型を変更するか、キャストを使用できます。不明な場合は、タイプをテストできます。

if (typeof(List<string>).IsAssignableFrom(ListaServizi.GetType()))
    ((List<string>)ListaServizi).Sort();
else
{
    //... some other solution; there are a few to choose from.
}

おそらくもっと慣用的な:

List<string> typeCheck = ListaServizi as List<string>;
if (typeCheck != null)
    typeCheck.Sort();
else
{
    //... some other solution; there are a few to choose from.
}

ListaServiziIList<string>の別の実装を保持することがあることがわかっている場合は、コメントを残してください。並べ替えの提案を1つまたは2つ追加します。

11
phoog
ListaServizi.Sort();

あなたのためにそれをします。文字列のリストがあれば簡単です。オブジェクトをソートする場合は、少し賢くする必要があります。

5
Ste
List<string> myCollection = new List<string>()
{
    "Bob", "Bob","Alex", "Abdi", "Abdi", "Bob", "Alex", "Bob","Abdi"
};

myCollection.Sort();
foreach (var name in myCollection.Distinct())
{
    Console.WriteLine(name + " " + myCollection.Count(x=> x == name));
}

出力:Abdi 3 Alex 2 Bob 4

3
Abdi