2017-09-23 207 views
0

C#中使用Linq的Java樣例等效於什麼?C#中的Java noneMatch()相當於Linq

int[] someArray(int[] arr1, int[] arr2) 
{ 
    return Arrays.stream(arr1).filter(a->Arrays.stream(arr2).noneMatch(i->i == a)).toArray(); 
} 
+1

卸下'java'標記,因爲你問題不是關於'java'。 –

+1

另請參閱https://stackoverflow.com/q/8741439 –

回答

3

我不是很熟悉Java 8流,而不是noneMatch()相當於!anyMatch()

您可以使用IEnumerable.Any()和否定它的結果得到你想要的東西:

int[] SomeArray(int[] arr1, int[] arr2) 
{ 
    return arr1.Where(a1 => !arr2.Any(a2 => a2 == a1)).ToArray(); 
} 

你也可以否定內部條件和使用All

int[] SomeArray(int[] arr1, int[] arr2) 
{ 
    return arr1.Where(a1 => arr2.All(a2 => a2 != a1)).ToArray(); 
}