如何订购 List < string > ?

我有这个 List<string>:

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

我如何按字母顺序和升序排序?

243934 次浏览
ListaServizi = ListaServizi.OrderBy(q => q).ToList();

你可以使用 排序

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

我会帮你的。对于字符串列表来说,它已经足够简单了。如果要对对象进行排序,您需要更聪明一些。

其他答案是正确的建议 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>的不同实现,请留下注释,我将添加一两条建议来对其进行排序。

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号 鲍勃四号