gpt4 book ai didi

c# - 使用多列对数据表进行降序排序 C#

转载 作者:行者123 更新时间:2023-12-02 03:27:34 25 4
gpt4 key购买 nike

我想创建一个方法,该方法能够获取数据表并通过指定的多列按降序对行进行排序。

下面是我调用表格排序方法的示例:

t1 = getSortedTable(t1 , "Hotel Costs, Flight Cost DESC");

酒店费用和航类费用均为双列类型。排序方法如下:

public static DataTable getSortedTable(DataTable dt, string sort)
{
DataTable newTable = new DataTable();
newTable = dt.Clone();
newTable.Rows.Clear();
DataRow[] newRows = dt.Select("", sort);
foreach (DataRow nr in newRows)
{
newTable.Rows.Add(nr.ItemArray);
}
return newTable;
}

该方法仅返回一个表,其中的行按航类成本降序排序。

最佳答案

您可以使用排序参数指定 DefaultView 并仅返回该 View ToTable():

public static DataTable GetSortedTable(DataTable dt, string sort)
{
dt.DefaultView.Sort = sort;
return dt.DefaultView.ToTable();
}

编辑:列名称中的空格可能会干扰排序,因此您可以像这样重命名列名称:

foreach(var column in dt.Columns)
{
column.ColumnName = column.ColumnName.Replace(" ", "_");
}

或者使用linq

if (dt.Rows.Count > 0)
{
dt = dt.AsEnumerable().OrderByDescending(x=>x.Field<decimal>("Hotel Costs")).ThenByDescending(x=>x.Field<decimal>("Flight Costs"))
.Select(x=>x)
.CopyToDataTable();
}

关于c# - 使用多列对数据表进行降序排序 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52780773/

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