[問題] 如何判斷Dictionary的key/value ?

看板C_Sharp (C#)作者 (1+1≠2)時間10年前 (2015/03/06 23:06), 編輯推噓3(308)
留言11則, 3人參與, 最新討論串1/2 (看更多)
假設我有個Dictionary如下 Dictionary<string, sring> dict = new Dictionary<string, string>(); dict.Add("apple", "30"); dict.Add("banana", "50"); dict.Add("grape", "100"); 假設我有個Patten 陣列,裡面裝的都是代表"一定"要出現的值 string[] Patten = new string[]{"apple","orange"}; 因此 我要怎麼判斷,Patten是否有完全出現在Dictionary中呢? 如果Dictionary沒有包含Patten的Key值及Key所對應的值為空則出現錯誤 除了用迴圈外,還有其他方式嗎?(LINQ?Lamdba?) 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.142.129.39 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1425654406.A.976.html

03/06 23:14, , 1F
用Dictionary.ContainsKey(Key)
03/06 23:14, 1F

03/06 23:15, , 2F
您文中的範例來說 就是dict.ContainsKey("apple") == true
03/06 23:15, 2F

03/06 23:15, , 3F
dict.ContainsKey("orange") = false 上面多打一個=...0rz
03/06 23:15, 3F

03/06 23:23, , 4F
感謝樓上回覆,假設陣列有10筆,只能用迴圈跑嗎?
03/06 23:23, 4F

03/06 23:24, , 5F
有沒有辦法直接用dic的key去Match陣列?
03/06 23:24, 5F

03/06 23:26, , 6F
把陣列串成一句,然後用Regex呢?
03/06 23:26, 6F

03/06 23:45, , 7F
var arrayKeys = dict.Keys;
03/06 23:45, 7F

03/06 23:45, , 8F
var boolResult =
03/06 23:45, 8F

03/06 23:46, , 9F
patten.Intersect(arrayKeys).Count() == patten.Length;
03/06 23:46, 9F

03/06 23:46, , 10F
boolResult 為false應該就是您要的結果?
03/06 23:46, 10F

03/06 23:53, , 11F
忽然發現漏了 "Key所對應的值為空" XD 小弟直接重回一篇…
03/06 23:53, 11F
文章代碼(AID): #1K-SA6bs (C_Sharp)
文章代碼(AID): #1K-SA6bs (C_Sharp)