我有一个包含日期列的数据表(RequestDate)。我需要使用 Linq 删除 RequestDate 列中值超过 30 天的所有行。
问问题
15406 次
3 回答
4
尝试这个:
dt.Rows.OfType<DataRow>()
.Where(r => DateTime.Now.Date - r.Field<DateTime>("RequestDate").Date > TimeSpan.FromDays(30))
.ToList()
.ForEach(r => r.Delete());
于 2013-09-10T19:34:54.987 回答
0
您可以使用 LINQ 查找应删除的行:
var rowsToDelete = source.AsEnumerable()
.Where(r => DateTime.Now - r.Field<DateTime>("RequestDate") > TimeSpan.FromDays(30))
.ToList();
但仍需要foreach
循环从源中删除行DataTable
:
foreach(var row in rowsToDelete)
source.Remove(row);
于 2013-09-10T19:29:40.713 回答
0
这里的简单解决方案:
Dim rows As DataRow() = (From anyNamehere In yourTableName.AsEnumerable().Cast(Of DataRow)() Where anyNamehere .Field(Of Integer)("id") = 1).ToArray()
For Each row As DataRow In rows
yourTableName.Rows.Remove(row)
于 2015-07-28T11:04:23.157 回答