比较vb.net中的两个数组

时间:2013-07-22 10:11:31

标签: vb.net

我需要用两个数组进行 Reverse Intersection 操作,并将结果保存在不同的数组中

例如:数组A {1,2,3};数组B {1,2,3,4,5,6}结果数组应为{4,5,6}

我尝试了以下逻辑,但没有工作

int k = 0;
int a[2] = {1,10};
int p[10];
int roll[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

for (int i = 0; i < 2; i++)
{
    for (int j = 1; j <= 10; j++)
    {
        if (a[i] == roll[j])
        {
            break;
        }
        else
        {
            p[k] = 0;
            p[k] = roll[j];
            k++;
        }
    }
}

我的vb.net项目需要它

2 个答案:

答案 0 :(得分:9)

我不明白C#代码是如何与您的VB.NET问题相关的,如果您只想查找一个数组而不是另一个数组中的integers,请使用Enumerable.Except

Dim intsA = {1, 2, 3}
Dim intsB = {1, 2, 3, 4, 5, 6}
Dim bOnly = intsB.Except(intsA).ToArray()

答案 1 :(得分:1)

如果你不能使用Linq,请尝试这样的事情:

Function RevIntersect(arr1() As String, arr2() As String) As String()
    Dim sResult, aux As New List(Of String)()

    aux.AddRange(arr1)
    aux.AddRange(arr2)

    For Each elem As String In aux
        If (Not arr1.Contains(elem) OrElse Not Arr2.Contains(elem)) AndAlso _
        Not sResult.Contains(elem) Then  
            sResult.Add(elem)
        End If
    Next

    Return sResult.ToArray()
End Function