早上好,我有两个列表需要合并在一起并从中创建一个数据表,我有以下代码块:
private static DataTable GetDataTable(IList<DataValue> listOneDataValues,
IList<DataValue> listTwoDataValues)
{
var dataTable = new DataTable();
dataTable.Columns.Add("ColumnFromListOne");
dataTable.Columns.Add("ColumnFromListTwo");
dataTable.Columns.Add("TimeStamp");
//Group the lists together
var query = (from listOne in listOneDataValues
from listTwo in listTwoDataValues
let columnFromListOne= listOne.DoubleValue
let columnFromListTwo= listTwo.DoubleValue
let timestamp = listOne.TimeStamp
where listOne.TimeStamp == listTwo.TimeStamp
select new {ColumnFromListTwo = columnFromListOne, ColumnFromListOne = columnFromListTwo, Timestamp = timestamp});
foreach(var q in query)
dataTable.Rows.Add(q.ColumnFromListOne, q.ColumnFromListTwo, q.TimeStamp);
return dataTable;
}
问题是这两个列表包含的时间戳相差几秒钟,而且它们根本不对齐,所以即使每个列表包含 200 多条记录,我的最终结果也会在数据表中出现一条或零条记录。我对 LINQ 很不满意,希望能在正确的方向上有所帮助。我想我需要在分组之前插入时间戳,但我想知道做这样的事情的最佳实践模式。