148

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

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

アルファベット順および昇順で並べ替えるにはどうすればよいですか?

4

5 に答える 5

288
ListaServizi = ListaServizi.OrderBy(q => q).ToList();
于 2012-04-18T14:27:04.900 に答える
54

ソートを使用できます

List<string> ListaServizi = new List<string>() { };
ListaServizi.Sort();
于 2012-04-18T14:27:56.823 に答える
17

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

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.
}

ListaServiziそれが時々異なる実装を保持することを知っているならIList<string>、コメントを残してください、そして私はそれをソートするための提案を1つか2つ追加します。

于 2012-04-18T14:48:56.193 に答える
8
ListaServizi.Sort();

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

于 2012-04-18T14:29:58.733 に答える
5
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));
}

出力: アブディ 3 アレックス 2 ボブ 4

于 2016-12-22T16:00:54.857 に答える