Как я могу проверить, содержит ли значение из массива какое-либо значение из другого массива?
Например:
string[] array1 = {"1726KB12","271","MB192"}
string[] array2 = {"KB","L1","C9"}
Это два массива, которые я использую. Мне нужно проверить, содержится ли какое-либо значение из массива2 в массиве1 (в данном случае «КБ» из массива2 содержится в массиве1, но не идентично).
Есть ли способ поймать это?
Все остальные решения, которые я мог найти, только проверяют, идентичны ли оба значения.
Вы можете использовать функцию .Any()
LINQ для возврата логического значения, указывающего, что массив1 содержит любое значение, присутствующее в массиве2:
using System;
using System.Linq;
class Program
{
static void Main()
{
string[] array1 = {"1726KB12", "271", "MB192"};
string[] array2 = {"KB", "L1", "C9"};
bool containsValue = array1.Any(a1 => array2.Any(a2 => a1.Contains(a2)));
if (containsValue)
{
Console.WriteLine("At least one value from array2 is contained within array1.");
}
else
{
Console.WriteLine("No value from array2 is contained within array1.");
}
}
}
На момент написания этой статьи .NET 9 все еще находится в предварительной версии, но улучшение
SearchValues
позволит вам ускорить этот сценарий: Объект SearchValues стал лучше с .NET 9.