繁体   English   中英

String.Contains():多个字符 - C#

[英]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"))

(如果两个值都必须在该数组内)

您要么必须查找子字符串,要么必须比较所有项目:

  1. 子:

     bool check = description.Contains("EUR CMS"); 
  2. LINQ with Enumerable.All

     string[] tokens = "EUR CMS".Split(); bool check = tokens.All(t => description_token.Contains(t)); 
  3. 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM