在閱讀了大約40-50個問題和答案(我嘗試了很多東西)之後,所有的答案都稍微有些偏離了,但我還是無法理解這種方式如何工作:爲什麼Equals沒有按預期工作
IEnumerable<string> textSegs = from cd in cds
where cd.Artist.Equals("Dream Theater")
select cd.Artist;
foreach(string s in textSegs)
Console.Write("\nTrack: " + s);
//This outputs: 'Track: Dream Theater'
現在,至於其他部分:
IEnumerable<string> textSegs = from seg in myXMLDoc.Descendants("name")
where ((string)seg).Equals("Dream Theater")
select (string)seg;
//This puts: exactly what I need
然後我想這會做魔術:
IEnumerable<string> textSegs = from seg in myXMLDoc.Descendants("name")
where ((string)seg).Equals(from cd in cds
where cd.Artist.Equals("Dream Theater")
select cd.Artist)
select (string)seg;
//This outputs: Everything that is inside the XMLDoc (no filter applied)
至於這個代碼的格式。恐怕它必須是這樣的(賦值)。我試圖將子查詢投射到一個字符串,但它告訴我:
Cannot convert type 'IEnumerable<string>' to 'string'
任何幫助表示讚賞!
'from ... select'是一組字符串。你不能檢查它是否等於單個字符串。 – SLaks