Lambda语法中ToLIst,ToAarray和AsReadonly,AsEnumerable之类的区别
To开头的返回的是队列的副本,操作原队列和副本没有影响
As开头的返回的是原队列的引用,只不过进行了引用类型的不同包装,如变成IEnumerable类型或IQueryable等类型,操作改变原队列,也会影响As产生的引用
如下例是可行的,如改成AsEnumerable就不行,会引发集合被修改的异常
Dim a As New List(Of String)
a.Add("a")
a.Add("b")
a.Add("c")
For Each p In a.ToArray()
If (p = "b") Then
a.Remove(p)
End If
Next