如何订购List <string>?</string>

时间:2012-04-18 14:24:37

标签: c# string list

我有List<string>

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

我如何按字母顺序和升序订购?

5 个答案:

答案 0 :(得分:202)

ListaServizi = ListaServizi.OrderBy(q => q).ToList();

答案 1 :(得分:38)

您可以使用Sort

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

答案 2 :(得分:11)

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

如果您知道ListaServizi有时会保留IList<string>的不同实现,请发表评论,我会添加一两个建议来进行排序。

答案 3 :(得分:5)

ListaServizi.Sort();

会为你做那件事。使用字符串列表足够简单。如果排序对象,你需要更聪明一点。

答案 4 :(得分:3)

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