gpt4 book ai didi

c# - Linq OrderBy 字符串

转载 作者:行者123 更新时间:2023-11-30 17:05:55 24 4
gpt4 key购买 nike

我有一组对象,我想按它们的名称属性按字母顺序排序。我尝试了以下方法:

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,是这个吗?

如果是,那么应该是这样的,注意属性不能与其各自的私有(private)成员重名

  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

关于c# - Linq OrderBy 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15947444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com