我想检查一个字符串是否包含C#中任意顺序的单词。我怎么能用一个简单的if语句来做到这一点。请参阅以下示例:
string a = "PT. DOWELL ANADRILL SCHLUMBERGER";
string b = "ANADRILL DOWELL";
if( a.Contains( b ) ) {
MessageBox.Show("true");
} else {
// the if always evaluates to false
MessageBox.Show("false");
}
答案 0 :(得分:7)
如果您想知道a
是否包含b
中的任何字词,那么
if(b.Split().Any(x => a.Contains(x)))
或者,如果您希望a
包含b
if(b.Split().All(x => a.Contains(x)))
请注意,请勿确保b
中的字词不是a
中的字词
a = "Once before";
b = "be";
此外,这只会将b
中的单词拆分为空格,因此如果有想要忽略的标点符号则无法使用
a = "I like turtles";
b = "like.";
答案 1 :(得分:3)
如果你知道每个单词之间都有一个空格来检查,这是另一种方式。
if(b.Split(' ').Any(a.Contains))
答案 2 :(得分:0)
string[] words = names.Split(';', '=', '\n', ' ', '\t');
String utga = textBox6.Text;
String utga1 = "IMSI";
int loop = 0;
int i = 0;
int j = 0;
foreach (string word in words)
{
int j = i+1;
if (words[i] == utga)
{
string loop = words[i+1];
if(words[j] == utga1)
{
MySqlDataAdapter adp1 = new MySqlDataAdapter("Insert into hlr.hlr(IMSI,MSISDN_COLUMN) Values('" + loop + "','" + words[i + 1] + "')", connection);
DataTable hlr = new DataTable();
adp1.Fill(hlr);
dataGridView1.DataSource = hlr;
adp1.Dispose();
connection.Close();
//i = i + too;
i++;
}
else
{
i++;
}
}
}