返回列表<;对象>;从IEnumerable C#
我有一个方法:返回列表<;对象>;从IEnumerable C#,c#,ienumerable,tolist,C#,Ienumerable,Tolist,我有一个方法: public List<AxeResult> LoadAxes(string kilometriczone, string axe) { IEnumerable<AxeResult> allAxes = PullAxes(); var findAxes = allAxes.Select(a => a.KilometricZone.StartsWith(kilometriczone) || a.KilometricZone.Starts
public List<AxeResult> LoadAxes(string kilometriczone, string axe)
{
IEnumerable<AxeResult> allAxes = PullAxes();
var findAxes = allAxes.Select(a => a.KilometricZone.StartsWith(kilometriczone) || a.KilometricZone.StartsWith(axe));
return findAxes.Cast<AxeResult>().ToList();
}
公共列表加载轴(字符串千米区域、字符串轴)
{
IEnumerable allAxes=PullAxes();
var findAxes=allAxes.Select(a=>a.kimliczone.StartsWith(kimliczone)| | a.kimliczone.StartsWith(axe));
返回findAxes.Cast().ToList();
}
我有一个错误:
IEnumerable
不包含ToList
和的定义
最佳扩展方法重载可枚举。ToList
(
IEnumerable
)需要受体类型IEnumerable
我想在搜索操作后返回AxeResult的列表。您想要的是筛选集合。这就是为什么:
公共列表加载轴(字符串千米区域、字符串轴)
{
返回PullAxes()
.式中(a=>a.kimmriczone.StartsWith(kimmriczone)|
a、 公里地带。起始带(斧头))
.ToList();
}
除了给出的答案之外,还有一些解释:
Where()方法的作用类似于过滤器并返回同一集合的子集
Select()方法进行投影并返回新集合
关于.Select()和Where()方法之间的区别有全面的解释。您使用
Select
withStartsWith
,它返回一个bool
。也许你想改用where语句?这个错误消息很奇怪。我本以为会出现一个运行时InvalidCastException
关于无法将bool
强制转换为AxeResult
。
public List<AxeResult> LoadAxes(string kilometriczone, string axe)
{
return PullAxes()
.Where(a => a.KilometricZone.StartsWith(kilometriczone) ||
a.KilometricZone.StartsWith(axe))
.ToList();
}