1

我在 c# 中有一个数据表,其中包含一个包含日期时间值的列。我想以 60 秒的间隔获得不同的值。

我当前的代码是这样的:

  string[] distinctCols = { "AssetId", "LDOM" };
  DataTable distinctAssetId = dt.DefaultView.ToTable(true, distinctCols);

这工作得很好,给了我独特的记录。但是,我需要间隔为 60 秒的唯一记录。

例如,“06-11-2013 12:56:01”和“06-11-2013 12:56:00”的 LDOM 值应该被认为是唯一的。

我如何做到这一点。

4

1 回答 1

2

这是如何完成的示例:

var dates = new[] 
    { 
        new DateTime(2013, 11, 6, 12, 56, 1),
        new DateTime(2013, 11, 6, 12, 56, 0),  
        new DateTime(2013, 11, 6, 12, 56, 50),  
        new DateTime(2013, 11, 6, 12, 10, 0)  
    };
var q = dates.GroupBy(d => d.Ticks / TimeSpan.TicksPerMinute)
       .Select(g => g.First());

这将返回:

2013-11-06 12:56:01
2013-11-06 12:10:00

使用 linq 对 DataTable 列应用相同的技术应该没有问题。

于 2013-11-06T10:00:10.130 回答