<?php
$category = [["English","French","Spanish","German"]];
$inCategory = '"' . implode('","', $category[0]) . '"';
$sql = "SELECT a.ad_id FROM `category_rel` a INNER JOIN tbl_category_master b ON a.category_id= b.fld_category_id WHERE b.fld_category_name IN ($inCategory)";
echo $sql;
'network = per_network的深层副本
vb&gt;&gt;&gt;我只是想将per_network的内容复制到网络,我尝试过ToList方法,但它是浅拷贝而且无法执行克隆方法我根本没有得到它
答案 0 :(得分:3)
您可以创建一个扩展方法,在该方法中序列化对象只是为了再次反序列化它。这将使用它自己的引用创建一个新对象,因此是一个深层复制。
Public Module Extensions
<System.Runtime.CompilerServices.Extension()> _
Public Function DeepCopy(Of T)(ByVal Obj As T) As T
If Obj.GetType().IsSerializable = False Then Return Nothing
Using MStream As New MemoryStream
Dim Formatter As New BinaryFormatter
Formatter.Serialize(MStream, Obj)
MStream.Position = 0
Return DirectCast(Formatter.Deserialize(MStream), T)
End Using
End Function
End Module
现在你可以打电话:
Dim network As List(Of train) = per_network.DeepCopy()
修改强>
以上是我的代码所需的导入:
Imports System.IO
Imports System.Runtime.Serialization.Formatters.Binary
答案 1 :(得分:1)
最简单的选择是使用LINQ,例如
Dim newList = oldList.Select(Function(item) CreateCopyOfItem(item)).ToList()
CreateCopyOfItem
的实施方式取决于项目的类型。如果类型具有Copy
或Clone
方法或复制构造函数,那么您将使用它,否则您只需创建该类型的新实例并复制相应的数据,例如。
Private Function CreateCopyOfItem(item As SomeType) As SomeType
Return New SomeType With {.SomeProperty = item.SomeProperty}
End Function
显然,您实际上并不需要单独的功能,如果您愿意,可以将它们全部一起滚动:
Dim newList = oldList.Select(Function(item) New SomeType With {.SomeProperty = item.SomeProperty}).ToList()
答案 2 :(得分:0)
这是我使用的代码
Dim deepCopies = _dictOfBalances1.Keys.ToList
基本上deepCopies是_dictOfBalances1.Keys的深层副本
如果deepCopies是浅拷贝,则此代码将不起作用。
For Each code In deepCopies
If allthecoincode.Contains(code) Then
Else
_dictOfBalances1.Remove(code)
'deletedKeys.Add(code)
End If
Next