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#+IMap实现收取163邮件

    接下来我将详细讲解使用c#+IMap实现收取163邮件的完整攻略,过程中将会提供两个示例。 总体思路 使用c#语言中的IMAP协议连接到163邮箱服务器,借助IMAP协议提供的标准API实现邮件收取操作。具体来说,主要分为以下3个步骤: 登录邮箱服务器 选择目标邮箱进行收取操作 获取邮件列表并解析邮件内容 下面我将对每个步骤进行详细讲解。 登录邮箱服务器 首…

    C# 2023年5月15日
    00
  • js内存泄露的几种情况详细探讨

    JS内存泄露的几种情况详细探讨 什么是内存泄露 内存泄漏指的是一个无用的对象仍然存在于内存中,因此该对象占用的内存无法被回收。在一个长时间运行的应用程序中,内存泄漏可能会导致内存耗尽并导致应用程序崩溃。 在JS中,有很多常见的情况会导致内存泄漏,下面将详细探讨几种情况。 几种常见的内存泄露情况 1. 意外的全局变量 意外的全局变量可能是最常见的内存泄漏场景。…

    C# 2023年6月7日
    00
  • C#实现获取机器码的示例详解

    标题:C#实现获取机器码的示例详解 介绍 机器码是一个唯一标识电脑或设备的序列号,可以被用来实现软件的授权和管理。在C#中,可以通过获取机器码来实现软件的授权功能。本文将详细讲解如何使用C#实现获取机器码,并给出两个具体的示例。 获取机器码的方法 示例1:使用C#的WMI(Windows Management Instrumentation)服务 WMI是W…

    C# 2023年6月6日
    00
  • Java使用DateTimeFormatter格式化输入的日期时间

    在Java中,可以使用DateTimeFormatter类来格式化输入的日期时间。本文将提供使用DateTimeFormatter格式化日期时间的完整攻略,包括创建DateTimeFormatter对象、格式化日期时间、解析日期时间。同时,本文还将提供两个示例,演示如何使用DateTimeFormatter格式化日期时间。 创建DateTimeFormatt…

    C# 2023年5月15日
    00
  • ASP.NET动态加载用户控件的实现方法

    下面是详细的“ASP.NET动态加载用户控件的实现方法”的攻略: 什么是ASP.NET动态加载用户控件? ASP.NET动态加载用户控件指的是在运行时动态地向页面中添加用户控件,而不是在设计时将控件添加到页面中。这种方式可以提高网站页面的可扩展性,可以根据不同的条件加载不同的用户控件,非常灵活。 实现方法 下面介绍两种ASP.NET动态加载用户控件的实现方法…

    C# 2023年6月3日
    00
  • SQL数据库实例名称找不到或远程连接失败并显示错误error40的原因及解决办法

    问题描述:如果你在连接SQL数据库时遇到了“SQL数据库实例名称找不到或远程连接失败并显示错误error40”的错误提示,那么就表示你的SQL服务器无法建立与此实例的连接。 原因分析:此问题多数是由以下几个因素造成的: SQL Server服务没有启动或启动了错误的服务名,导致实例名称无法链接; 防火墙阻止了对数据库的连接; SQL Server实例没有启用…

    C# 2023年5月15日
    00
  • C#判断一个字符串是否包含另一个字符串的方法

    本文将为大家介绍C#中判断一个字符串是否包含另一个字符串的方法。 方法一:使用Contains()方法 使用C#的字符串类型中的Contains()方法,可以判断一个字符串是否包含其他某个字符串。该方法返回一个布尔值,如果被查询字符串包含在主字符串中,返回true;否则返回false。 string str1 = "hello world&quot…

    C# 2023年5月15日
    00
  • 分享两种实现Winform程序的多语言支持的多种解决方案

    接下来我将详细讲解Winform程序实现多语言支持的多种解决方案。 1. 利用Resx文件实现多语言支持 Resx文件是.NET中专门用于多语言支持的文件格式,可以用来存储不同语言的文本信息,在程序中通过读取Resx文件来实现不同语言的界面显示。 1.1 创建Resx文件 创建Resx文件有多种方式,这里以Visual Studio为例。 在Visual S…

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