【发布时间】:2012-10-10 22:10:41
【问题描述】:
我正在尝试使用Enumerable.OrderBy 对列表进行排序,因为最终我希望能够按多个字段进行排序。目前,如果我创建一个新变量 var 来保存结果视图,它似乎才有效,这意味着(我认为)需要重新转换类型。
是否有一种方法可以在保留原始 List 变量和类型的同时按 1 个以上的字段对 List 进行排序? IE。我宁愿以List<orderedbins> 类型的变量_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;
}
【问题讨论】:
-
你是指变量(引用)还是对象本身?
-
我的意思是变量(参考),我不需要保留原来的列表顺序