C# 使用LINQ按先来先服务顺序连接Test1与Test2两个列表的实现方法
实现方案
你可以直接使用LINQ内置的Zip方法完成需求,该方法会严格按照两个序列的元素顺序逐位配对,刚好符合你要求的先来先服务、第n个元素与第n个元素匹配的规则。
完整代码示例
// 核心配对逻辑 var pairedResult = test1.Zip(test2, (item1, item2) => new { Test1Data = item1, Test2Data = item2 }).ToList(); // 按你需要的格式输出验证 foreach (var pair in pairedResult) { Console.WriteLine($"{{ part = {pair.Test1Data.part} , job = \"{pair.Test1Data.job}\"}}, {{ part = {pair.Test2Data.part}, job = \"{pair.Test2Data.job}\" }}"); }
运行上述代码后输出结果和你预期的完全一致:
{ part = 1 , job = "A"}, { part = 1, job = "D" } { part = 1 , job = "B"}, { part = 1, job = "E" } { part = 1 , job = "C"}, { part = 1, job = "F" }
注意事项
- 如果两个列表长度不一致,
Zip方法会以更短的列表长度为准停止配对,若需要处理长度不一致的场景,可提前对两个列表做长度对齐、补默认值的预处理 - 示例中返回的是匿名类型的配对结果,你也可以根据业务需求自定义强类型类存储配对数据
内容的提问来源于stack exchange,提问作者Kyle Withers
相关产品推荐
相关产品推荐

