我有一个包含一些行的数据表,其中之一是一个 ID(字符串)和一个 System.DateTime。 其他行现在不重要。
现在我想删除所有具有相同 ID 且具有较旧日期时间的行作为最新行。
这可能吗?
举个例子
- 编号:123 日期:24.12.2010 ...
- 编号:123 日期:23.12.2010 ...
- 编号:123 日期:22.12.2010 ...
在此之后我只想要:
- 编号:123 日期:24.12.2010 ...
最佳答案
下一步试试
public void DeleteOldById(DataTable table, int id)
{
var rows = table.Rows.Cast<DataRow>().Where(x => (int)x["ID"] == id);
DateTime specifyDate = rows.Max(x => (DateTime)x["Date"])
rows.Where(x =>(DateTime)x["Date"] < specifyDate).ToList().
ForEach(x => x.Delete());
}
public void DeleteAllOldRows(DataTable table)
{
var ids = table.Rows.Cast<DataRow>().Select(x => (int)x["ID"]).Distinct();
foreach(int id in ids)
DeleteOldById(table,id);
}
关于c# - 如何使用过滤器从 C# 中的 DataTable 中删除行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6018756/