实现C#两个数组比较并去重可以分为以下步骤:
步骤一:准备数据
首先,我们需要准备两个待比较的数组A和B,可以使用以下代码创建:
int[] A = { 1, 2, 3, 4, 5 };
int[] B = { 4, 5, 6, 7, 8 };
步骤二:比较两个数组
接下来,我们使用Linq扩展方法进行比较。代码如下:
var diff = A.Except(B).Union(B.Except(A));
在这段代码中,我们使用了Except
方法求出A中不在B中的元素,使用Union
方法将其和B中不在A中的元素合并成一个新的集合。
步骤三:输出结果
最后,我们可以使用以下代码将不重复的元素输出到控制台上:
foreach (int i in diff)
{
Console.Write(i + " ");
}
完整实现代码如下:
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
int[] A = { 1, 2, 3, 4, 5 };
int[] B = { 4, 5, 6, 7, 8 };
var diff = A.Except(B).Union(B.Except(A));
foreach (int i in diff)
{
Console.Write(i + " ");
}
Console.ReadLine();
}
}
输出结果为:1 2 3 6 7 8
另外,我们也可以使用另外的方式实现数组比较和去重。例如,我们可以使用循环遍历的方式依次比较两个数组的元素,然后将不重复的元素添加到新的数组中。实现代码如下:
using System;
class Program
{
static void Main(string[] args)
{
int[] A = { 1, 2, 3, 4, 5 };
int[] B = { 4, 5, 6, 7, 8 };
int[] C = new int[A.Length + B.Length]; // 定义一个新数组C
int k = 0;
for (int i = 0; i < A.Length; i++)
{
bool duplicate = false;
for (int j = 0; j < B.Length; j++)
{
if (A[i] == B[j]) // A[i]在B中出现过
{
duplicate = true;
break;
}
}
if (!duplicate) // A[i] 未在B中出现过
{
C[k++] = A[i]; // 将A[i]添加到新数组C中
}
}
for (int i = 0; i < B.Length; i++)
{
bool duplicate = false;
for (int j = 0; j < A.Length; j++)
{
if (B[i] == A[j]) // B[i]在A中已经出现过
{
duplicate = true;
break;
}
}
if (!duplicate) // B[i] 未在A中出现过
{
C[k++] = B[i]; // 将B[i]添加到新数组C中
}
}
int[] result = new int[k]; // 定义一个长度为k的数组
Array.Copy(C, result, k); // 复制C中前k个元素到result中
foreach (int i in result)
{
Console.Write(i + " ");
}
Console.ReadLine();
}
}
输出结果为:1 2 3 6 7 8。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c# 两个数组比较,将重复部分去掉,返回不重复部分的实现 - Python技术站