簡體   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