我有一個問題(q)與許多答案,每個答案都有各種不同的文字,不同的語言。我想編寫一個查詢在給定的語言(郎)返回所有問題的答案,但我有困難想出來的......這裏就是我想:構建一個linq查詢
List<string> Answers = q.Answers
.Select(x => x.Texts.Where(l => l.Language.ISO == Lang).Select(t => t.Value))
.ToList();
產生:
Cannot implicitly convert type 'System.Collections.Generic.List<System.Collections.Generic.IEnumerable<string>>' to 'System.Collections.Generic.List<string>'
也許我不能有一個選擇內選擇...和:
List<string> Answers = q.Answers
.Select(x => x.Texts.Where(l => l.Language.ISO == Lang))
.Select(t => t.Value)
.ToList();
,我會想到的第一選擇,返回文本,這意味着第二個選擇可以找到它。價值。 ..但是,沒有:
'System.Collections.Generic.IEnumerable<Website.Models.Text>' does not contain a definition for 'Value' and no extension method 'Value' accepting a first argument of type 'System.Collections.Generic.IEnumerable<Website.Models.Text>' could be found (are you missing a using directive or an assembly reference?)
......也許我很接近,但我不太明白。如何做到這一點?
- 編輯 -
這裏要歸功於SLaks。這裏的最後陳述:
List<string> Answers = q.Answers
.SelectMany(x => x.Texts)
.Where(x => x.Language.ISO == Lang)
.Select(x => x.Value)
.ToList();
笑。好。我想這必須有一個特殊的構造。謝謝一堆! – ekkis 2011-05-31 03:04:18