我想使用c#检查字符串值是否包含字符串数组中的单词。例如,

string stringToCheck = "text1text2text3";

string[] stringArray = { "text1", "someothertext", etc... };

if(stringToCheck.contains stringArray) //one of the items?
{

}

我如何检查字符串值'stringToCheck'是否包含数组中的一个词?


当前回答

LINQ:

arrray。Any(x => word.Equals(x));

这是为了查看数组是否包含单词(精确匹配)。使用. contains作为子字符串,或者其他任何你可能需要应用的逻辑。

其他回答

我使用下面的代码来检查字符串是否包含字符串数组中的任何项:

foreach (string s in stringArray)
{
    if (s != "")
    {
        if (stringToCheck.Contains(s))
        {
            Text = "matched";
        }
    }
}
⚠️ Note: this does not answer the question asked
The question asked is "how can I check if a sentence contains any word from a list of words?"
This answer checks if a list of words contains one particular word

我在控制台应用程序中使用以下命令检查参数

var sendmail = args.Any( o => o.ToLower() == "/sendmail=true");

你可以这样做:

string stringToCheck = "text1";
string[] stringArray = { "text1", "testtest", "test1test2", "test2text1" };
foreach (string x in stringArray)
{
    if (stringToCheck.Contains(x))
    {
        // Process...
    }
}

也许你正在寻找一个更好的解决方案……参考Anton Gogolev使用LINQ的答案。

一个不需要任何LINQ的简单解决方案:

String.Join(",", array).Contains(Value + ",");
⚠️ Note: this does not answer the question asked
The question asked is "how can I check if a sentence contains any word from a list of words?"
This answer checks if a list of words contains one particular word

只需使用LINQ方法:

stringArray.Contains(stringToCheck)