Return List<object> 来自 IEnumerable C#
Return List<object> from IEnumerable C#
我有一个方法:
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<bool>
does not contain a definition for ToList
and
the best extension method overload Enumerable.ToList<AxeResult>
(
IEnumerable<AxeResult>
) requires a receptor type IEnumerable<AxeResult>
我想return一个搜索操作后的AxeResult列表。
你想要的是过滤集合。这就是 Enumerable.Where
的用途:
public List<AxeResult> LoadAxes(string kilometriczone, string axe)
{
return PullAxes()
.Where(a => a.KilometricZone.StartsWith(kilometriczone) ||
a.KilometricZone.StartsWith(axe))
.ToList();
}
除了给出的答案之外的一些解释:
Where() 方法的作用类似于 filter 和 returns 同一集合的子集
Select()方法使投影和returns新集
关于 .Select() 和 Where() 方法之间的差异有全面的解释 here。
我有一个方法:
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<bool>
does not contain a definition forToList
and the best extension method overloadEnumerable.ToList<AxeResult>
(IEnumerable<AxeResult>
) requires a receptor typeIEnumerable<AxeResult>
我想return一个搜索操作后的AxeResult列表。
你想要的是过滤集合。这就是 Enumerable.Where
的用途:
public List<AxeResult> LoadAxes(string kilometriczone, string axe)
{
return PullAxes()
.Where(a => a.KilometricZone.StartsWith(kilometriczone) ||
a.KilometricZone.StartsWith(axe))
.ToList();
}
除了给出的答案之外的一些解释:
Where() 方法的作用类似于 filter 和 returns 同一集合的子集
Select()方法使投影和returns新集
关于 .Select() 和 Where() 方法之间的差异有全面的解释 here。