c# 两个数组比较,将重复部分去掉,返回不重复部分的实现

实现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技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • ASP.NET Core中Startup类、Configure()方法及中间件详解

    在 ASP.NET Core 中,Startup 类是应用程序的入口点,它负责配置应用程序的服务和中间件。Configure() 方法是 Startup 类中的一个方法,它用于配置应用程序的 HTTP 请求管道。本文将详细讲解 Startup 类、Configure() 方法及中间件的相关知识。 Startup 类 Startup 类是 ASP.NET Co…

    C# 2023年5月17日
    00
  • C# 位图BitArray的使用

    下面是关于C# 位图BitArray的使用的完整攻略: 什么是C#位图BitArray C#位图BitArray是一个二进制位的数组,它只包含0和1。它可以很方便地用来储存和操作大量的布尔值,例如大型的开关状态。BitArray在应用程序中无处不在,例如在算法,密码学和编译器中经常会使用它。 如何创建C#位图BitArray 以下是创建C#位图BitArra…

    C# 2023年6月7日
    00
  • C#使用CefSharp控件实现爬虫

    以下是详细讲解“C#使用CefSharp控件实现爬虫”的完整攻略: 1.什么是CefSharp CefSharp是一种基于Chromium Embedded Framework(CEF)的.NET开源项目,通过将Chromium增加到应用程序中,可以在WinForms和WPF应用程序中嵌入HTML内容,运行JavaScript等。它极大地提高了.NET应用程…

    C# 2023年6月7日
    00
  • Visual Studio寻找C#程序必要的运行库文件

    当我们用Visual Studio创建C#程序并尝试运行时,有时可能会遇到找不到必要的运行库文件的情况。为了解决这个问题,可以采用以下攻略。 第一步:检查程序是否需要的运行库 首先需要确认程序是否真的需要依赖于某个运行库,我们可以通过查看程序的引用来确定是否有引用第三方库或系统库,如果有,就需要检查这些库是否被正确地安装在了计算机中。 第二步:检查项目属性 …

    C# 2023年6月1日
    00
  • asp.net core MVC 全局过滤器之ExceptionFilter过滤器(1)

    asp.net core MVC 全局过滤器之ExceptionFilter过滤器(1) 在ASP.NET Core MVC中,我们可以使用全局过滤器来处理应用程序中的异常。其中,ExceptionFilter过滤器是一种常用的全局过滤器,用于处理应用程序中的异常。在本文中,我们将详细讲解ExceptionFilter过滤器的使用方法。 ExceptionF…

    C# 2023年5月16日
    00
  • Blazor UI库 Bootstrap Blazor 快速上手 (v7.5.7)

    最近组件库更新比较频繁,有些同学感觉有点迷茫,就着今天刚上了张老板一节课立马撸个新的上手教程回馈社区, ;-> 1.新建工程b18QuickStartv757,将项目添加到解决方案中 dotnet new blazorserver -o b18QuickStartv757 dotnet sln add b18QuickStartv757/b18Quic…

    C# 2023年4月27日
    00
  • 理解ASP.NET Core 中间件(Middleware)

    理解ASP.NET Core 中间件(Middleware) ASP.NET Core中间件是一个处理HTTP请求和响应的组件。中间件可以在请求到达控制器之前或响应返回客户端之前执行一些操作。在本文中,我们将介绍ASP.NET Core中间件的概念、使用方法和示例。 中间件的概念 中间件是一个处理HTTP请求和响应的组件。中间件可以在请求到达控制器之前或响应…

    C# 2023年5月16日
    00
  • C#泛型类型知识讲解

    C#泛型类型是一种高效、强类型和可重用的代码编写方式,其中泛型类型参数可以在运行时指定,达到代码重用和类型安全的目的。 常见的泛型类型 C#泛型类型中常见的有以下几种: 泛型类:在类定义时使用泛型类型参数,可以在运行时指定具体类型,使得类具有高复用性和通用性。 示例代码: public class GenericClass<T> { privat…

    C# 2023年6月7日
    00
合作推广
合作推广
分享本页
返回顶部