微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用集合在三个数组中找到共同元素的C#程序

使用集合在三个数组中找到共同元素的C#程序

设置三个数组

int[] arr1 = {
   99,
   57,
   63,
   98
};

int[] arr2 = {
   43,
   99,
   33,
   57
};

int[] arr3 = {
   99,
   57,
   42
};

现在使用HashSet设置上述元素。

// HashSet One
var h1 = new HashSet < int > (arr1);
// HashSet Two
var h2 = new HashSet < int > (arr2);
// HashSet Three
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
      };

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

      // displaying
      int[] val1 = h1.ToArray();
      Console.WriteLine("Set one...");
      foreach(int val in val1) {
         Console.WriteLine(val);
      }

      //displaying
      int[] val2 = h2.ToArray();
      Console.WriteLine("Set two...");
      foreach(int val in val2) {
         Console.WriteLine(val);
      }

      //displaying
      int[] val3 = h3.ToArray();
      Console.WriteLine("Set three...");
      foreach(int val in val3) {
         Console.WriteLine(val);
      }

      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++;
         }
         // x < y
         else if (val1[i] < val2[j])
         i++;
         // y < z
         else if (val2[j] < val3[k])
         j++;
         else
         k++;
      }
   }
}

以上就是使用集合在三个数组中找到共同元素的C#程序的详细内容,更多请关注编程之家其它相关文章

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐