The*_*max 266 c# arrays string search
我想使用C#来检查字符串值是否包含字符串数组中的单词.例如,
string stringToCheck = "text1text2text3";
string[] stringArray = { "text1", "someothertext", etc... };
if(stringToCheck.contains stringArray) //one of the items?
{
}
Run Code Online (Sandbox Code Playgroud)
如何检查'stringToCheck'的字符串值是否包含数组中的单词?
Ant*_*lev 799
这是如何做:
if(stringArray.Any(stringToCheck.Contains))
/* or a bit longer: (stringArray.Any(s => stringToCheck.Contains(s))) */
Run Code Online (Sandbox Code Playgroud)
这将检查是否stringToCheck
包含任何一个子字符串stringArray
.如果要确保它包含所有子字符串,请更改Any
为All
:
if(stringArray.All(stringToCheck.Contains))
Run Code Online (Sandbox Code Playgroud)
Abd*_*oof 134
这是你如何做到的:
string stringToCheck = "text1";
string[] stringArray = { "text1", "testtest", "test1test2", "test2text1" };
foreach (string x in stringArray)
{
if (stringToCheck.Contains(x))
{
// Process...
}
}
Run Code Online (Sandbox Code Playgroud)
更新:可能您正在寻找更好的解决方案..请参阅下面的@Anton Gogolev的答案,其中使用了LINQ.
小智 39
无需使用LINQ
if (Array.IndexOf(array, Value) >= 0)
{
//Your stuff goes here
}
Run Code Online (Sandbox Code Playgroud)
Leg*_*s21 37
只需使用linq方法:
stringArray.Contains(stringToCheck)
Run Code Online (Sandbox Code Playgroud)
(抱歉无法在现有答案上添加评论,因为我的声誉<50)
最简单和样本方式.
bool bol=Array.Exists(stringarray,E => E == stringtocheck);
Run Code Online (Sandbox Code Playgroud)
小智 6
string strName = "vernie";
string[] strNamesArray = { "roger", "vernie", "joel" };
if (strNamesArray.Any(x => x == strName))
{
// do some action here if true...
}
Run Code Online (Sandbox Code Playgroud)
也许这样的东西:
string stringToCheck = "text1text2text3";
string[] stringArray = new string[] { "text1" };
if (Array.Exists<string>(stringArray, (Predicate<string>)delegate(string s) {
return stringToCheck.IndexOf(s, StringComparison.OrdinalIgnoreCase) > -1; })) {
Console.WriteLine("Found!");
}
Run Code Online (Sandbox Code Playgroud)