我想要一个类似“if”语句的东西来测试一个单词或一组单词的字符串。如果单词在字符串中,它会在控制台上显示字符串。
如果有人可以提供帮助,将不胜感激。
尽管这是一个可怕的问题;我要违背我的直觉来回答它。
构建一个List<string>
你想要搜索的:
private List<string> _words = new List<string> { "abc", "def", "ghi" };
然后构建一个不错的小扩展方法,如下所示:
public static bool ContainsWords(this string s)
{
return _words.Any(w => s.Contains(w));
}
所以现在你可以说:
myString.ContainsWords();
整个扩展类可能如下所示:
public static class Extensions
{
private List<string> _words = new List<string> { "abc", "def", "ghi" };
public static bool ContainsWords(this string s)
{
return _words.Any(w => s.Contains(w));
}
public static bool ContainsWords(this string s, List<string> words)
{
return words.Any(w => s.Contains(w));
}
}
注意:根据您的应用程序的需要,第二种方法更为通用。它不会从扩展类中获取列表,而是允许将其注入。但是,您的应用程序可能非常具体,因此第一种方法更合适。
为什么不直接使用.Contains()
方法......
string s = "i am a string!";
bool matched = s.Contains("am");
String [] words={"word1","word2","word3"};
String key="word2";
for(int i=0;i<words.Length;i++)
{
if(words[i].Contains(key))
Console.WriteLine(words[i]);
}
您可以使用String.Contains
类似的方法;
string s = "helloHellohi";
string[] array = new string[] { "hello", "Hello", "hi", "Hi", "hey", "Hey", "Hay", "hey" };
foreach (var item in array)
{
if(s.Contains(item))
Console.WriteLine(item);
}
输出将是;
hello
Hello
hi
这里一个demonstration
.