我想优化此代码:
dim mPolNo as new Collection(Of String)
For Each _olap As clsOLAP in cscOLAPs
mPolNo.Add(_olap._p1.PolNo)
Next
(PolNo的数据类型为String)
我尝试使用我在谷歌挖掘的Collection.Select。
mPolNo = cscOLAPs.Select(Function(x) x._p1.PolNo.ToString)
但我遇到错误说:
Unable to cast object of type 'WhereSelectEnumerableIterator`2[SIPLib.ING.clsOLAP,System.String]' to type 'System.Collections.ObjectModel.Collection`1[System.String]'.
答案 0 :(得分:0)
Where
返回IEnumerable(Of String)
要将其分配给Collection(Of String)
,您需要枚举Where
的结果。
可以通过调用.ToList()
扩展方法
cscOLAPs.Select(Function(x) x._p1.PolNo.ToString).ToList()
可以使用 ToList()
,因为Collection(Of String)
实现了IList(Of String)
接口。