我有这个 List<string>
:
IList<string> ListaServizi = new List<string>();
如何按字母顺序升序排序?
ListaServizi = ListaServizi.OrderBy(q => q).ToList();
IList<string>
。这段代码实际上可以按照编写的方式工作,不像那些得到更多赞的答案使用了ListaServizi.Sort()
。我并不是说这是我选择的解决方案,但当我发布我的答案时,这实际上是唯一正确的答案。 - phoog.Sort
,那为什么不这样做呢。 - Servy您可以使用Sort
List<string> ListaServizi = new List<string>() { };
ListaServizi.Sort();
其他答案正确地建议使用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>
实现,请留下评论,我将添加一些建议来对其进行排序。
ListaServizi.Sort();
我会为您做这件事。如果是字符串列表,这很直观。如果需要对对象进行排序,则需要稍微聪明一些。
ListaServizi
是一个 IList<string>
类型的变量,这个接口没有 Sort
方法。至少需要进行一次类型转换。 - phoogList<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));
}
output: Abdi 3 Alex 2 Bob 4
.Sort
吗?参考链接为http://msdn.microsoft.com/en-us/library/b0zbh7b6%28v=vs.90%29.aspx。 - Matthew