我有一个ObservableCollection
即MobileList
类型MobileModel
。 MobileModel的列表为MobileModelInfo
。
我只需要来自MobileModelInfo
的{{1}}。所以我在方法MobileList
中使用了Linq Select语句。但是我无法分配列表,它显示错误。
我的C#源代码:
ExtractFirstMobileList()
请帮助我如何将Enumerable转换为首选类型。
答案 0 :(得分:5)
如果您想创建包含所有不同MobileModelInfo
的展平列表,可以使用SelectMany
:
List<MobileModelInfo> mInfo = Source.SelectMany(t => t.Model).ToList();
但是你的方法被称为ExtractFirstMobileList
,这表明你想要每个子列表中的第一个项目 - 在这种情况下你可以使用:
List<MobileModelInfo> mInfo = Source.Select(t => t.Model.First()).ToList();
希望这有帮助
答案 1 :(得分:3)
MobileModel类的Model属性本身就是一个列表。因此,您使用的select查询将返回MobileModelInfo集合的集合(返回类型IEnumerable&lt; List&lt; MobileModelInfo&gt;&gt;)
将其转换为List&lt; List&lt; MobileModelInfo&gt;&gt;最后添加.ToList()。
List<List<MobileModelInfo>> mInfo = Source.Select(t => t.Model).ToList();
答案 2 :(得分:1)
如果您需要在LINQ
方法之后使用ToList()
使用Select()
方法对列表进行极值反应。还要确保您的列表不为空,它存在且包含多于0个元素