[英]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.