[英]Copying Linq query to List
'Read RESX file and returns a List(Of ResXDataNode)
Dim allNodes = getResourceData()
'Linq Query to extract the nodes
Dim movedNodes = From rowNodes In allNodes _
Where rowNodes.Comment = oldRowNumber _
Select rowNodes
請問:
Dim nodesToMove As List(Of ResXDataNode) = New List(Of ResXDataNode)
For Each movedNode As ResXDataNode In movedNodes
nodesToMove.Add(movedNode)
Next
要么
Dim nodesToMove As List(Of ResXDataNode) = movedNodes.ToList
提供節點的兩個單獨副本? 還是List和Linq查詢仍在引用相同的數據?
它們仍將引用相同的對象-不會創建任何額外的ResXDataNode
對象。
順便說一句,調用movedNodes.ToList()
會比手動添加每個對象更簡單...
現在完全有可能,每次您遍歷movedNodes
它都可能創建新對象-這實際上取決於它在做什么,而您尚未顯示它是如何創建的。 但是復制到列表不會創建新對象。
如果ResXDataNode
是引用類型,則它們仍將引用相同的對象,如果它是值類型,則將創建副本並將其添加到新列表中。
編輯: ResXDataNode
是引用類型,因此新列表仍將引用相同的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.