我有一種可怕的感覺,這可能會把自己縮減爲一個虛擬的我,森林樹木的情況,如果是這樣的話,我會提前做好準備。但對我的生活,我只是不理解爲什麼下面的行不會在C#編譯,假設myRegEx
是一個RegEx
對象,myString
是到Match
方法的調用目標,具體如下:爲什麼我不能從CaptureCollection對象調用Select()?
String[] results = myRegEx.Matches(myString)[0].Groups["Group1"].Captures.Select(x => x.Value).ToArray<String>();
.Captures
參考應該讓我轉到CaptureCollection
,它實現IEnumerable
,而IEnumerable
提供一個擴展方法Select
作爲我在這裏嘗試的轉換,爲集合中的每個項目抓取Value
屬性並將其推入到字符串數組中。
但是,編譯器在樹皮我
「System.Text.RegularExpressions.CaptureCollection不包含 定義‘選擇’和沒有擴展方法的‘選擇’接受類型的 第一個參數可以找到「 System.Text.RegularExpression.CaptureCollection」。
我可以通過調用從捕捉對象的.Cast<Capture>()
方法解決這個問題,然後調用一個選擇變換,反過來,訪問Value
財產,但似乎有點傻考慮的對象已經是Capture
對象。
我在做什麼錯?非常感謝提前指出我的部分必須是一個痛苦明顯的監督。
你沒有做錯什麼。 MatchCollection和CaptureCollection只實現'IEnumerable'而不是'IEnumerable' –
AAAAARRRRRGGGHHH !!!!!!!!當然。謝謝。發佈作爲答案,我會很高興接受。 –