Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

โปรแกรม C# หาค่าที่ซ้ำกันใน 3 อาร์เรย์ด้วย HashSet

กำหนด 3 อาร์เรย์:

int[] arr1 = { 99, 57, 63, 98 };
int[] arr2 = { 43, 99, 33, 57 };
int[] arr3 = { 99, 57, 42 };

สร้าง HashSet และหาค่าซ้ำ:

var h1 = new HashSet<int>(arr1);
var h2 = new HashSet<int>(arr2);
var h3 = new HashSet<int>(arr3);

ตัวอย่าง

using System;
using System.Collections.Generic;
using System.Linq;
public class Program {
    public static void Main() {
        int[] arr1 = { 99, 57, 63, 98 };
        int[] arr2 = { 43, 99, 33, 57 };
        int[] arr3 = { 99, 57, 42 };
        var h1 = new HashSet<int>(arr1);
        var h2 = new HashSet<int>(arr2);
        var h3 = new HashSet<int>(arr3);
        int[] val1 = h1.ToArray();
        int[] val2 = h2.ToArray();
        int[] val3 = h3.ToArray();
        int i = 0, j = 0, k = 0;
        Console.WriteLine("Common elements...");
        while (i < val1.Length && j < val2.Length && k < val3.Length) {
            if (val1[i] == val2[j] && val2[j] == val3[k]) {
                Console.Write(val1[i] + " ");
                i++; j++; k++;
            } else if (val1[i] < val2[j]) i++;
            else if (val2[j] < val3[k]) j++;
            else k++;
        }
    }
}