Linq OrderBy字符串
问题描述:
我有一个对象集合,我想按字母顺序按其名称属性进行排序。 我试过以下内容:Linq OrderBy字符串
List<Item> itemsToSort = dataProvider.Items.ToList();
List<Item> sortedItems = itemsToSort.OrderBy(x=>x.Name).ToList();
哪个行不通。这些项目仍按照以前相同的方式列出,而不是按字母顺序排列。
编辑
下面是一个更完整的示例:
类:
public class MeasureStation
{
#region Properties
public int ID
{
get { return _measureStation.ID; }
set { _measureStation.ID = value; }
}
[Required(ErrorMessage = "Navn skal udfyldes")]
public String Name
{
get { return _measureStation.Name; }
set { _measureStation.Name = value; }
}
public DateTime? DateEstablished
{
get { return _measureStation.DateEstablished; }
set { _measureStation.DateEstablished = value; }
}
public DateTime? OperationPeriodStart
{
get { return _measureStation.OperationPeriodStart; }
set { _measureStation.OperationPeriodStart = value; }
}
.
.
and so on...
}
查询是:
measureStations = dataProvider.MeasureStations.ToList();
var orderedMeasureStations = measureStations.OrderBy(x => x.Name);
当考虑看看orderedMeasureStations查询结果,它看起来像以下内容: 条目开始于:
F...
S...
a...
L...
所以很显然不按名称排序。
答
我怎么没看到你class MeasureStation
将永远工作
什么是_measureStation
,是它this
?
如果是,那么它应该是什么样子,请注意属性不能有相同的名称作为其各自的私有成员
public class MeasureStation
{
private int id;//private is optional as it is default
public int ID
{
get { return this.id; }
set { this.id = value; }
}
private String name;//private is optional as it is default
public String Name
{
get { return this.name; }
set { this.name = value; }
}
}
虽然,它等同于用自动属性类:
public class MeasureStation
{
public int ID {get;set;}
public String Name {get;set;}
}
所以,我跑反对他们两个
private static void Main(string[] args)
{
List<MeasureStation> itemsToSort
= new List<MeasureStation>()
{
new MeasureStation() {ID = 01, Name = "Bbbb"},
new MeasureStation() {ID = 01, Name = "Aaaa"},
new MeasureStation() {ID = 01, Name = "Cccc"}
};
List<MeasureStation> sortedItems = itemsToSort.OrderBy(x => x.Name).ToList();
Console.WriteLine("******itemsToSort*****");
foreach (var item in itemsToSort)
Console.WriteLine(item.Name.ToString());
Console.WriteLine("******sortedItems*****");
foreach (var item in sortedItems)
Console.WriteLine(item.Name.ToString());
Console.ReadLine();
}
具有得到有序输出:
******itemsToSort*****
Bbbb
Aaaa
Cccc
******sortedItems*****
Aaaa
Bbbb
Cccc
确定吗?这应该工作海事组织,显示你的完整代码..你确定'名称'是'字符串'? – 2013-04-11 11:23:50
你确定他们没有正确的顺序? – Charleh 2013-04-11 11:24:00
同意,这应该工作... – 2013-04-11 11:24:02