我有两个字符串数组名str_arr1 [],str_arr2 []。两个数组具有相同或不同的值。
str_arr1[] = { "one", "two", "three","four","Doctor","Engineer","Driver" };
str_arr2[] = { "one", "Doctor","Engineer" };
通常str_arr1 []的记录与str_arr2 []相比更多。我想检查str_arr1 []是否有str_arr2 []。如果它是真的意味着返回true。否则返回false。
答案 0 :(得分:3)
bool contains = !str_arr2.Except(str_arr1).Any();
答案 1 :(得分:3)
function compareArrays(arr1, arr2) {
if (arr1.length != arr2.length) {
return false;
}
return arr1.sort().join() == arr2.sort().join();
}
var arr1 = ["one", "two", "three","four","Doctor","Engineer","Driver" ];
var arr2 = ["one", "Doctor","Engineer"];
console.log(compareArrays(arr1,arr2));
答案 2 :(得分:2)
请使用此
static bool ArraysEqual<T>(T[] a1, T[] a2)
{
if (ReferenceEquals(a1,a2))
return true;
if (a1 == null || a2 == null)
return false;
if (a1.Length != a2.Length)
return false;
EqualityComparer<T> comparer = EqualityComparer<T>.Default;
for (int i = 0; i < a1.Length; i++)
{
if (!comparer.Equals(a1[i], a2[i])) return false;
}
return true;
}
答案 3 :(得分:1)
bool result=str_arr2.Any(x=>!str_arr1.Contains(x));
答案 4 :(得分:0)
var str_arr1 = new string[] { "one", "two", "three", "four", "Doctor", "Engineer", "Driver" };
var str_arr2 = new string[] { "one", "Doctor", "Engineer" };
return str_arr1.Intersect(str_arr2).Count() == str_arr2.Length;
答案 5 :(得分:0)
var inter = str_arr1.Intersect( str_arr2);
foreach (var s in inter)
{
Console.WriteLine("present" + s); // or you can return somthin
}
答案 6 :(得分:0)
你没有清除条件。我结合了所有条件。
string[] str_arr1 = new string[] { "one", "two", "three", "four", "Doctor", "Engineer", "Driver" };
string[] str_arr2 = new string[] { "one", "aaaa", "yyy" };
bool contains = !str_arr2.Except(str_arr1).Any(); // this will show true only if all the items of str_arr2 are in str_arr1
bool result = str_arr2.Any(x => !str_arr1.Contains(x));// this will show true if any of the items of str_arr2 are in str_arr1