我需要用两个数组进行 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项目需要它
答案 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