如何订购List <string>?

mar*_*zzz 111 c# string list

我有这个List<string>:

IList<string> ListaServizi = new List<string>();
Run Code Online (Sandbox Code Playgroud)

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

dar*_*yal 222

ListaServizi = ListaServizi.OrderBy(q => q).ToList();
Run Code Online (Sandbox Code Playgroud)


Ric*_*ton 41

你可以使用Sort

List<string> ListaServizi = new List<string>() { };
ListaServizi.Sort();
Run Code Online (Sandbox Code Playgroud)


pho*_*oog 11

其他答案是正确的建议Sort,但他们似乎错过了存储位置输入的事实IList<string. Sort不是界面的一部分.

如果您知道ListaServizi它将始终包含a List<string>,您可以更改其声明的类型,或使用强制转换.如果您不确定,可以测试类型:

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

也许更惯用:

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

如果你知道ListaServizi有时候会有不同的实现IList<string>,请留言,我会添加一两个建议来进行排序.


Ste*_*Ste 5

ListaServizi.Sort();
Run Code Online (Sandbox Code Playgroud)

将为您做到这一点。使用字符串列表非常简单。如果对对象进行排序,则需要变得更聪明。

  • ListaServizi是IList &lt;string&gt; 接口没有`Sort`方法。您至少在这里需要演员。 (3认同)

小智 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));
}
Run Code Online (Sandbox Code Playgroud)

输出:阿布迪 3 亚历克斯 2 鲍勃 4