【发布时间】:2019-04-15 11:45:45
【问题描述】:
截至目前,我使用以下代码合并两个List<string> 列表并按时间戳对它们进行排序
var list = report[0];
var list2 = report[1];
var result = list
.Union(list2)
.Select(x =>
{ return new {Log = x, Time = TimeSpan.Parse(x.Split(' ')[0])}; })
.OrderBy(x => x.Time)
.ToList();
现在的问题是我必须处理两个以上的列表,最多为 n。我查看了SelectMany 示例,但它似乎不支持与Select 相同的功能。我计划这样做的另一种方法是使用 foreach 循环,但这似乎不是一种有效的方法,尤其是当列表变大时。
编辑(添加示例数据和预期结果):强>
示例 list1 可能如下所示:11:03:01:003 INFO some event has occurred
11:03:31:004 DEBUG another event has occurred
11:04:01:015 INFO third event has occurred
示例 list2 可能如下所示:11:03:16:003 INFO fourth event has occurred
11:03:32:025 DEBUG fifth event has occurred
11:03:54:023 INFO sixth event has occurred
因此,可以有多个这样的列表。这两个列表的预期合并将如下所示:11:03:01:003 INFO some event has occurred
11:03:16:003 INFO fourth event has occurred
11:03:31:004 DEBUG another event has occurred
11:03:32:025 DEBUG fifth event has occurred
11:03:54:023 INFO sixth event has occurred
11:04:01:015 INFO third event has occurred
【问题讨论】:
-
您能提供一些示例数据并期待结果吗?
-
你不能只做
list1.Union(list2).Union(list3).Union(list4)之类的吗?