gpt4 book ai didi

c# - 对数据表中的行进行排序

转载 作者:太空狗 更新时间:2023-10-30 01:05:13 25 4
gpt4 key购买 nike

我有一个数据表,我想将所有具有特定名字和姓氏的行移动到表的顶部。

public DataTable SortByFirstNameAndLastNameMatch(DataTable table, string firstName, string lastName)
{
DataTable ret = new DataTable();
foreach (DataRow dataRow in table.Rows)
{
if (dataRow["NomArtiste"].ToString().ToLower() == lastName.ToLower() && dataRow["PrenomArtiste"].ToString().ToLower() == firstName.ToLower())
{
ret.ImportRow(dataRow);
}
}

ret.Merge(table);
return RemoveDuplicateRows(ret, "AlbumID");
}

有没有一种方法可以在不创建新数据表的情况下使用 linq 表达式或比较器来执行此操作?

最佳答案

您可以在 DataTable 上创建一个新的 DataView 并应用您认为合适的任何排序和过滤。参见 http://msdn.microsoft.com/en-us/library/system.data.dataview.sort.aspx举个例子。

或者,您可以使用 LINQ 来完成:

var sortedTableQuery = table.OrderBy(r => r["NomArtiste"].ToString() == lastName ? 0 : 1).ThenBy(r => r["PrenomArtiste"].ToString() == firstName ? 0 : 1).ThenBy(r => r["NomArtiste"].ToString()).ThenBy(r => r["PrenomArtiste"].ToString());
var a = sortedTableQuery.ToArray();

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

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