gpt4 book ai didi

c# - 按对象的内部字段排序 List

转载 作者:行者123 更新时间:2023-11-30 19:18:35 26 4
gpt4 key购买 nike

考虑下面的代码

class Pin
{
string Name; //can be either Numerical or AlphaNum
}

enum Place
{
Left,
Right
}

class Map
{
Pin pin;
Place Place;
Rectangle Rect;
}

PinName字段只能是数字或字母数字,所以我通过字符串来支持两者。

现在我的问题是如果我有一个 List<Map>如何按 Pin 的名称字段对列表进行排序?我尝试了下面的代码,但无法编译:

map.Sort((x, y) => x.Pin.Name.CompareTo(y.Pin.Name)); 
//Cannot implicitly convert type 'void' to 'System.Collections.Generic.List<DataModels.PinMap>

最佳答案

您显示的代码不会产生该编译器错误。我假设您正在尝试将结果分配给新变量或自身。像这样:

map = map.Sort(...);

因为 List<T>.Sort 这是不可能或没有必要的正在执行 就地 排序,即它更改了原始列表,因此不返回任何内容。因此,只需删除赋值即可消除编译器错误。

如果您不想就地排序,只需使用 Enumerable.OrderBy结合 ToList生成新列表:

var result = map.OrderBy(x => x.pin.Name).ToList();

关于c# - 按对象的内部字段排序 List<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12158391/

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