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日

相关文章

  • c# 实现简单的串口通讯

    下面是详细讲解“c#实现简单的串口通讯”的完整攻略。 硬件准备 在进行串口通讯前,我们需要准备一些硬件设备,包括: 确保计算机中带有串口或者USB转串口的转接器。 一根串口线。 串口通讯设备(例如:单片机)。 环境配置 在进行串口通讯前,需要在电脑上安装串口通讯库,使用.NET的串口类即可实现串口通讯。在Visual Studio中,可以在工具箱中找到串口控…

    C# 2023年5月15日
    00
  • C# Path.Combine()方法: 将指定路径的多个部分组合成一个路径

    Path.Combine()方法是C#中用于合并文件路径的工具,它可以将多个字符串路径合并为单个完整的路径,此方法主要用于跨平台的开发和维护,可以避免路径中的错误和混乱,同时也可以方便地管理文件路径。 使用方法如下: Path.Combine(string path1, string path2[, string path3[, string path4[,…

    C# 2023年4月19日
    00
  • C#运用FileInfo类实现拷贝文件的方法

    C#中可以使用FileInfo类实现拷贝文件的方法,下面介绍具体步骤和示例说明。 步骤 创建FileInfo对象,指定源文件的路径和文件名。 调用FileInfo类的CopyTo方法,将源文件复制到目标位置。 示例说明 示例一 下面的示例演示了如何使用FileInfo类实现拷贝文件的方法: using System.IO; class Program { s…

    C# 2023年6月1日
    00
  • asp.net中资源文件的使用

    当我们开发ASP.NET应用程序时,使用多语言资源文件是一种良好的实践。本文将为你介绍ASP.NET应用程序中资源文件的用法。 资源文件的定义和分类 资源文件是什么? 资源文件(Resource File)是指保存一个或多个文本字符串、图像、音频或其他类型数据的文本文件。 .NET Framework 提供了一种能够以有组织的方式存储、访问和管理资源的方式,…

    C# 2023年5月31日
    00
  • asp.net(c#)不可访问,因为它受保护级别限制

    当在 ASP.NET(C#)应用程序中使用类成员、方法、或属性时,有时候会出现“不可访问,因为它受保护级别限制”的异常。这是因为在 C# 中每个类成员、方法、或属性都有一个访问修饰符,它用于限制其他代码中对它的访问权限。 以下是几种可能的修饰符: public: 所有代码都可以访问它 private: 只有类内部的代码能够访问它 protected: 只有类…

    C# 2023年5月15日
    00
  • 详解C#App.config和Web.config加密

    C#中的App.config和Web.config文件是应用程序的配置文件,这些配置文件中可能会包含敏感信息,如连接数据库的密码,这些信息一旦泄露将会造成严重的安全问题。因此,对配置文件的加密是必要的。 以下是对C# App.config和Web.config加密的完整攻略: 步骤1:创建加密命令 使用ASP.NET提供的命令工具aspnet_regiis来…

    C# 2023年5月15日
    00
  • 详解c# 泛型类的功能

    详解C#泛型类的功能 什么是泛型类? 泛型类是一种能够以参数化类型的方式工作的类。它们在C#语言中非常普遍,几乎是所有.NET框架中各种集合类型的基础。通过使用泛型类,我们可以提高代码的复用性和可移植性,并且可以避免出现类型强制转换等问题。 泛型类的声明方式 class MyClass<T> //这里的T是一个类型参数 { T field1; T…

    C# 2023年5月15日
    00
  • 详解Java中的checked异常和unchecked异常区别

    详解Java中的checked异常和unchecked异常区别 Java中的异常类型可以分为两种:checked异常和unchecked异常。两种异常的区别主要在于程序编译时期是否必须进行异常处理。 checked异常: checked异常即编译器在编译Java程序时检查出的异常,通常与I/O操作和网络连接相关。程序在编译时必须要强制进行处理,这意味着这些异…

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