[英]String.Contains() : Multiple character - C#
我有这段代码:
description="EUR CMS Swap";
description_token=description.Split(" ".ToCharArray());
bool check;
if(description_token.Contains("EUR CMS"))
check=true;
但即使如此, check
总是错误的
description_token[0]="EUR"
description_token[1]="CMS"
我究竟做错了什么? 有替代方法吗?
您拥有的源值将按空格分割为数组,因此您的数组中应该有three
对象
(EUR,CMS和Swap)
所以你应该重写你的支票
if(description_token.Contains("EUR") || description_token.Contains("CMS"))
(如果仅仅其中一个值在该数组内就足够了)
要么
if(description_token.Contains("EUR") && description_token.Contains("CMS"))
(如果两个值都必须在该数组内)
您要么必须查找子字符串,要么必须比较所有项目:
子:
bool check = description.Contains("EUR CMS");
LINQ with Enumerable.All
:
string[] tokens = "EUR CMS".Split(); bool check = tokens.All(t => description_token.Contains(t));
LINQ with Enumerable.Any
(至少一个匹配)
bool check = tokens.Any(t => description_token.Contains(t));
第一种方法检查给定字符串是否是较大的子字符串,第二种方法检查所有标记是否包含在较大的集合中。
你不能以这种方式使用Contains
。 拆分后,没有任何单个元素包含“EUR CMS”。 您可以在拆分字符串之前执行检查(使用description.Contains("EUR CMS"
),也可以在拆分后通过单独检查EUR和CMS来执行检查。
if(description_token.Contains("EUR") && description_token.Contains("CMS"))
check=true;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.