在以下函数中,当我尝试返回一个值:
时,我收到错误无法转换
System.Linq.IQueryable<System.Collections.Generic.IEnumerable<string>>
返回类型System.Collections.Generic.IEnumerable<string>
public IEnumerable<string> GetModuleKindPropertyNames(long moduleKindId)
{
var configurationId = GetModuleKindPertypeConfigurationId(moduleKindId);
var propertyNames = _dbSis.ModuleKinds
.Where(t => t.PerTypeConfigurationId == configurationId)
.Select(x => x.PerTypeConfiguration.Properties
.Select(z => z.Name));
return propertyNames; //red line below property names
}
我该如何解决这个问题?
答案 0 :(得分:1)
您希望从集合中的集合中选择项目,并将将结果整理为单个序列。
从概念上讲,类似于:
如果是这种情况,那么您正在寻找SelectMany方法:
var propertyNames = _dbSis.ModuleKinds
.Where(t => t.PerTypeConfigurationId == configurationId)
.SelectMany(x => x.PerTypeConfiguration.Properties)
.Select(z => z.Name);