gpt4 book ai didi

c# - 排序列表而不创建新变量

转载 作者:太空狗 更新时间:2023-10-30 00:03:17 34 4
gpt4 key购买 nike

我正在尝试使用 Enumerable.OrderBy对列表进行排序,因为最终我希望能够按多个字段进行排序。目前它似乎只有在我创建一个新变量 var 时才有效保留结果 View ,这意味着(我认为)需要重新转换类型。

有没有一种方法可以按多个字段对列表进行排序,同时保留原始列表变量和类型? IE。我宁愿以变量 _orderedbins 结尾类型 List<orderedbins>

下面是我目前拥有的,但从 var test = ... 开始的所有内容似乎都有点不对。

public class orderedBins
{
public string Bin { get; set; }
public int Order { get; set; }
}

List<orderedbins> _orderedbins = new List<orderedbins>();
foreach (string item in splitbins)
{
string[] spbinSetting = item.Split(',');
bool bchecked = bool.Parse(spbinSetting[1]);
int border = int.Parse(spbinSetting[2]);

if (bchecked == true)
{
_orderedbins.Add(new orderedbins { bin = spbinSetting[0], Order = border });
}
}

var test =_orderedbins.OrderBy(x => x.Order);
foreach (var item in test)
{
string f = item.Bin;
int g = item.Order;
}

最佳答案

您知道,您可以通过...对一个订单执行多个子排序

lst.OrderBy(x => x.Prop1).ThenBy(x => x.Prop2).ThenByDescending(x => x.Prop3)...

只需添加一个 .ToList(); 并用一个变量引入它,将结果放入一个列表变量中。

编辑:

为了提高可读性,Willem 提出了很好的建议:

from x in lst
order by x.Prop1, x.Prop2, x.Prop3
select x

关于c# - 排序列表而不创建新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12820752/

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