轻松组合多个列表
在编程任务中,经常会遇到需要将多个列表合并在一起的情况。考虑这样的场景:您有两个包含字符串的列表,并且希望在保持原始序列并消除重复项的同时有效地组合它们。
解决方案
幸运的是,.NET 框架为这项任务提供了一个简单的解决方案。推荐的方法如下:
List<string> a = new List<string>(); List<string> b = new List<string>(); a.AddRange(b);
通过使用 AddRange 方法,我们可以毫不费力地将列表 b 的元素追加到列表 a 的末尾。但是,此方法不会删除重复项。
保留原始列表
如果不希望更改原始列表,我们可以使用 Concat 方法:
var newList = a.Concat(b);
此操作创建一个新的 IEnumerable 集合,该集合组合了两个列表的元素,而不修改原始集合。需要注意的是,如果列表 a 为 null,则 Concat 方法将返回仅包含列表 b 的元素的 IEnumerable。
示例用法
考虑以下内容示例:
List<string> colors1 = new List<string> { "Red", "Blue", "Yellow" }; List<string> colors2 = new List<string> { "Orange", "Pink", "Green" }; Console.WriteLine("Original Lists:"); Console.WriteLine(string.Join(",", colors1)); Console.WriteLine(string.Join(",", colors2)); colors1.AddRange(colors2); Console.WriteLine("Combined List with Duplicates:"); Console.WriteLine(string.Join(",", colors1)); var colors3 = colors1.Concat(colors2); Console.WriteLine("Combined List without Duplicates:"); Console.WriteLine(string.Join(",", colors3));
输出:
Original Lists: Red,Blue,Yellow Orange,Pink,Green Combined List with Duplicates: Red,Blue,Yellow,Orange,Pink,Green,Orange,Pink,Green Combined List without Duplicates: Red,Blue,Yellow,Orange,Pink,Green
上面的代码演示了如何使用 AddRange 和 Concat 方法来组合包含和不包含重复项的列表。
以上是如何在 C# 中有效组合多个列表,同时处理重复项并保留原始列表?的详细内容。更多信息请关注PHP中文网其他相关文章!