如何使用循环匹配c#中包含数组任意值的字符串?

本文关键字:任意值 数组 字符串 包含 循环 何使用 | 更新日期: 2023-09-27 18:14:23

如何匹配字符串包含数组的任何值在c# w/o使用循环?

例如:

string[] abc= [val1,val2,val3]。字符串xyz= "演示字符串,检查ABC数组中是否包含任何值为val2";

我想检查数组abc是否存在于字符串xyz w/o中使用循环

如何使用循环匹配c#中包含数组任意值的字符串?

一种方法可能是linq

string[] abc = { "abc", "def", "xyz" }; 
string xyz = "demo string to check if it contains any value in abc array that is val2";
bool result = abc.Any(xyz.Contains); //true

但是内部的linq和contains使用循环-所以我认为没有循环就没有可能的解决方案。

要从/在一个集合(读数组)中搜索,需要使用循环/迭代,因为涉及到集合。

即使你不写循环,写一些语法糖代码,在后台它也会使用loop/ITERATION。

正如其他人回答的那样,你可以使用LINQ或其他东西,但它会遍历你的集合

已经有一个contains函数。你可以这样使用

bool result=abc.Contains("walue to be checked");
另一种方法是使用LINQ

,但是这两个方法都使用内部循环。

您可以检查为:

string[] arr = { "abc", "bcd", "cde" };
if (arr.Contains("abc"))
{
    Console.WriteLine("Found");
}
else
{
    Console.WriteLine("Not Found");
}

为了更快的方法,你可以使用Array。IndexOf方法:

int pos = Array.IndexOf(arr, "abc");
if (pos > -1)
{
    // the array contains the string and the pos variable
    // will have its position in the array
}