iT邦幫忙

0

(解決)C# 一個字串跟一組陣列,判斷字串是否再陣列裡面

c#
  • 分享至 

  • xImage

請問我有字串:112,24234,gj,32432,232
跟一陣列 : {232,"dsf",323,32432}
如何判斷前一個字串是否有包含陣列的一個元素?

有不需要循環的寫法嗎? 或是可以用LINQ實現

看更多先前的討論...收起先前的討論...
神Q超人 iT邦研究生 5 級 ‧ 2018-03-18 22:35:52 檢舉
可以先把陣列轉成字串,再用indexOf去判斷是否有這個值
jay80338 iT邦新手 5 級 ‧ 2018-03-18 23:42:01 檢舉
我一開始也是這樣想
把陣列去跑foreach indexof
接著想有一萬筆不是要跑一萬次 所以想問其他方式
提供一個做法給大大參考看看

var str = "112,24234,gj,32432,232";
var arr = new string[] { "232", "dsf", "323", "32432" };

//先將字串陣列做成 Dictionary
var dic = arr.ToDictionary(it => it);

//將字串切割後丟進 Dictionary 比對
var isStrInArr = str.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Any(it => dic.ContainsKey(it));
jay80338 iT邦新手 5 級 ‧ 2018-03-19 09:11:52 檢舉
fysh711426 大,對這是我想要的,謝謝!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
小魚
iT邦大師 1 級 ‧ 2018-03-18 23:24:03

你的陣列是什麼陣列?
為什麼有數字又有文字?
文字判斷的話C#有提供類似的方法,
你執行看看就知道了。

string input = "今天天氣真好";
string pattern = "今天";
bool test = input.Contains(pattern);
Console.WriteLine(test);
pattern = "明天";
test = input.Contains(pattern);
Console.WriteLine(test);
看更多先前的回應...收起先前的回應...
jay80338 iT邦新手 5 級 ‧ 2018-03-18 23:42:36 檢舉

陣列是字串陣列

jay80338 iT邦新手 5 級 ‧ 2018-03-18 23:42:47 檢舉

想問有沒有LINQ做法

fillano iT邦超人 1 級 ‧ 2018-03-19 09:19:50 檢舉
jay80338 iT邦新手 5 級 ‧ 2018-03-19 11:48:41 檢舉

很有幫助 謝謝! fillano

我要發表回答

立即登入回答