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读取excel文件的三种方法示例

    标题:ASP.NET读取Excel文件的三种方法示例 读取Excel文件是一个常见的需求,ASP.NET提供了多种方式读取Excel文件,本文将介绍三种方法示例。 1. 使用OleDbDataReader读取Excel文件 通过OleDbDataReader可以读取Excel文件的数据,需要注意的是,连接字符串中需要指定Excel文件的路径和名称,具体代码如…

    C# 2023年6月3日
    00
  • C#使用Thrift作为RPC框架入门详细教程

    C#使用Thrift作为RPC框架入门详细教程 什么是Thrift Thrift是一个由Facebook开源的高效、多语言支持的远程过程调用(RPC)框架,可用于构建跨平台、可扩展的服务。 安装Thrift 在使用Thrift之前,先需要安装Thrift的编译器(thrift.exe),可以从Thrift官网(https://thrift.apache.or…

    C# 2023年6月1日
    00
  • C#实现写入文本文件内容的方法

    当需要将数据写入本地文本文件时,常用的语言之一是C#。C# 为文件读写提供了方便易用的功能,使得将数据写入文本文件变得十分简单。以下是如何使用 C# 实现写入文本文件内容的方法: 1. 语法 C# 提供了 StreamWriter 类,用于将文本数据写入文件。它在 System.IO 命名空间下。 使用 StreamWriter 类之前,需要先创建一个文本文…

    C# 2023年6月1日
    00
  • efcore性能调优

    性能调优——EFCore调优 按下硬件、网络不提,我们单表从程序层面对系统的性能进行优化,翻来覆去无外乎三个方面 缓存 异步 sql本片文章,我们针对.net core web项目的ef core框架进行性能优化。 1. EF Core框架已经本地缓存机制memorycache,所以我们访问一个接口,二次访问的性能相比首次会提升一大截 2.尽可能的通过主键查…

    C# 2023年4月30日
    00
  • Coolite配置 管理软件开发历程之

    Coolite配置管理软件开发历程 Coolite是一个ASP.NET AJAX框架,其最大的特点就是提供了一套非常丰富的扩展控件。在使用过程中,可以通过改变配置项,来控制控件的行为。本文主要介绍如何通过Coolite配置来管理深度定制开发过程中的控件行为。 菜单控件的配置 首先,我们来看看菜单控件的配置。在Coolite中,我们可以通过配置来控制菜单控件的…

    C# 2023年6月3日
    00
  • Asp.net 无限级分类实例代码

    下面是“Asp.net 无限级分类实例代码”的攻略: 简介 这是一个使用Asp.net实现的无限级分类的实例代码。可以方便地实现无限级分类,并通过实例代码可以学习到如何使用Asp.net实现无限级分类。 实现过程 首先,需要建立一个数据库表用于存储分类。可以建立一个包含id、名称、父级id三个字段的表,其中父级id为0代表该分类是顶级分类。 在Asp.net…

    C# 2023年5月31日
    00
  • .Net 6简介并和之前版本写法做对比

    以下是“.Net 6简介并和之前版本写法做对比”的完整攻略。 什么是.Net 6? .Net 6是微软推出的一种跨平台开发框架,它可以用于构建Windows、Linux、macOS以及用于云的应用程序。与之前的版本相比,.Net 6具有更高的性能、更强的安全性以及更多的易用性。它还包括很多新的特性和改进,比如Web、Desktop和移动应用程序的改进,以及新…

    C# 2023年6月3日
    00
  • C# 输出字符串到文本文件中的实现代码

    下面是在 C# 中输出字符串到文本文件中的实现代码攻略: 1. 创建文件并写入字符串 代码实现 using System.IO; // 定义字符串变量 string str = "hello world!"; // 创建一个文件流 FileStream fs = new FileStream("output.txt",…

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