C# 在C中记录数组中的重复信息#

C# 在C中记录数组中的重复信息#,c#,arrays,logging,C#,Arrays,Logging,假设您拥有以下阵列: int[] x = new int[6] {2,4,6,8,10,12}; int[] y = new int[6] {3,6,9,12,15,18}; 如果要打印相同的数组值,在本例中为6和12,那么在C#中最有效的方法是什么?与其他数据类型(如字符串或布尔值)是否有区别?您可以使用下面的代码查找匹配的元素 int[] x = new int[6] { 2, 4, 6, 8, 10, 12 }; int[] y = new int[6] { 3, 6,

假设您拥有以下阵列:

    int[] x = new int[6] {2,4,6,8,10,12};
    int[] y = new int[6] {3,6,9,12,15,18};

如果要打印相同的数组值,在本例中为6和12,那么在C#中最有效的方法是什么?与其他数据类型(如字符串或布尔值)是否有区别?

您可以使用下面的代码查找匹配的元素

int[] x = new int[6] { 2, 4, 6, 8, 10, 12 };
int[] y = new int[6] { 3, 6, 9, 12, 15, 18 };

foreach (int i in x)
{
    if (y.Contains(i))
    { 
        Console.WriteLine(i);//Print Matched items
    }
}
只要两个数组中的数据类型相同,它就可以正常工作。
希望这对您有所帮助。

您可以使用下面的代码查找匹配的元素

int[] x = new int[6] { 2, 4, 6, 8, 10, 12 };
int[] y = new int[6] { 3, 6, 9, 12, 15, 18 };

foreach (int i in x)
{
    if (y.Contains(i))
    { 
        Console.WriteLine(i);//Print Matched items
    }
}
只要两个数组中的数据类型相同,它就可以正常工作。
希望这对您有所帮助。

标记的答案是
O(n*m)
,当n=m时,它是
O(n^2)
。使用其中一个数组的内容创建哈希集,并从另一个数组中检查哈希集中的项是
O(n+m)
,当n=m时,这是
O(n)
。这样做一方面需要分配
O(n)
额外的存储空间,另一方面,当n较大时,它将在宇宙结束之前完成。对于具有六个元素的阵列,任何解决方案都可以。对于具有600万的阵列,标记的答案将不适用。这两组代码都很简单

实现可以分为两行

var hashSet = new HashSet<int>(x);
var inBoth = y.Where(t => hashSet.Contains(t));

标记的答案是
O(n*m)
,当n=m时,这是
O(n^2)
。使用其中一个数组的内容创建哈希集,并从另一个数组中检查哈希集中的项是
O(n+m)
,当n=m时,这是
O(n)
。这样做一方面需要分配
O(n)
额外的存储空间,另一方面,当n较大时,它将在宇宙结束之前完成。对于具有六个元素的阵列,任何解决方案都可以。对于具有600万的阵列,标记的答案将不适用。这两组代码都很简单

实现可以分为两行

var hashSet = new HashSet<int>(x);
var inBoth = y.Where(t => hashSet.Contains(t));

获取以最少的必要行和最少的额外信息完成的所需任务。获取以最少的必要行和最少的额外信息完成的所需任务。