我有一个问题(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