我尝试了两种不同的方法来搜索这个字符串并将其与Appendixkeywords字符串匹配。我尝试过使用Array.Exists
和Array.IndexOf
,但都找不到Appendix关键字。任何帮助都会很棒。
代码:
public static void Main()
{
var Appendixkeywords = new[]
{
"appendix h: biosimilars"
};
string source = "aaa bbb ccc ddd eee fff <a href="http://www.cnn.com">Appendix H: Biosimilars</a> gg hh ii jj";
string sourceb = "aaa bbb ccc ddd eee fff Appendix H: Biosimilars gg hh ii jj";
bool b = Array.Exists(Appendixkeywords, element => element == source.ToLower());
Console.WriteLine(b);
int pos = Array.IndexOf(Appendixkeywords, source.ToLower());
Console.WriteLine(pos);
int pos1 = Array.IndexOf(Appendixkeywords, sourceb.ToLower());
Console.WriteLine(pos1);
}
实际输出:
False
-1
-1
预期输出:
True
<some index other than -1>
<some index other than -1>
工作样品
https://dotnetfiddle.net/QIXFDn
我假设您要检查source
字符串是否包含Appendixkeywords
数组中指定的任何字符串。此外,我认为您希望实现不区分大小写的比较。
bool foundAnyAppendixWord = Appendixkeywords
.Any(word => source
.Contains(word, StringComparison.InvariantCultureIgnoreCase));
你可以(甚至应该(将其轻松地转化为可重复使用的方法
static bool ContainsAnySearchWord(string[] searchWords, string target)
{
return searchWords.Any(word => target
.Contains(word, StringComparison.InvariantCultureIgnoreCase));
}
// ...
bool foundAnyAppendixWord = ContainsAnySearchWord(Appendixkeywords, source);
.NET Framework(及更早版本(:
static bool ContainsAnySearchWord(string[] searchWords, string target)
{
return searchWords.Any(word => target.ToLower()
.Contains(word.ToLower()));
}
编辑
您还必须添加一个using System.Linq;
:(