亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 LinQ 搜索不在字符數組中的字符串

如何使用 LinQ 搜索不在字符數組中的字符串

C#
慕婉清6462132 2021-11-21 16:11:01
List<string> words = new List<string> { "abc", "acb", "cba", "cb a", "abf", "sea", "aba", "so ap", "a b c" }; string allowedChars = "abc";我想檢查列表字符串中的無效字符。我嘗試使用 IndexOfAny() 但 IndexOfAny() 不檢查空格。如何檢查包含無效字符的字符串?我想要的結果:“cb a”、“abf”、“sea”、“so ap”、“ab c”
查看完整描述

2 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

var invalid = words.Where(w => !w.All(allowedChars.Contains));

它檢查每個單詞中是否至少有一個字符不包含在allowedChars.

這是相同的,但更詳細一點:

var invalid = words.Where(w => w.Any(c => !allowedChars.Contains(c)));

如果找到第一個未包含的字符,兩者都會停止執行。

正如 Juharr 所指出的,如果允許使用多個字符,您可以通過使用 aHashSet<char>而不是 來提高效率String

var alloweCharSet = new HashSet<char>(allowedChars);


查看完整回答
反對 回復 2021-11-21
?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

返回包含除 allowedChars 之外的任何其他字符的所有單詞:

var result = words.Where(w => w.Except(allowedChars).Any());

雖然這給出了預期的結果,但有人指出,這將通過調用 ExtSet為列表中的allowedChars每個創建一個新word的。這可能不會提供最佳性能。


查看完整回答
反對 回復 2021-11-21
  • 2 回答
  • 0 關注
  • 299 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號