首页 >后端开发 >C++ >如何在 C# 中有效组合多个列表,同时处理重复项并保留原始列表?

如何在 C# 中有效组合多个列表,同时处理重复项并保留原始列表?

Linda Hamilton
Linda Hamilton原创
2024-12-28 10:28:18266浏览

How can I efficiently combine multiple lists in C# while handling duplicates and preserving original lists?

轻松组合多个列表

在编程任务中,经常会遇到需要将多个列表合并在一起的情况。考虑这样的场景:您有两个包含字符串的列表,并且希望在保持原始序列并消除重复项的同时有效地组合它们。

解决方案

幸运的是,.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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn