有点愚蠢的问题,但它让我感到困惑。
之间是否存在差异:
Dictionary<short, String> details= new <short, String>()
Dictionary<short, String> tmpDetails = db.getDetails();
foreach (var tmpDetails in tmpDetails )
{
details.Add(tmpDetails.Key, tmpDetails.Value);
}
和
Dictionary<short, String> details= new <short, String>()
Dictionary<short, String> tmpDetails = db.getDetails();
details = tmpDetails;
如果我将1个实例插入另一个实例?
答案 0 :(得分:4)
在您的第一个示例中,您将项目从一个Dictionary
复制到另一个{{1}};它们是单独的实例。如果向一个实例添加值,则另一个不受影响。
在第二个示例中,您使用两个变量引用相同的实例。如果您通过一个引用添加值,则另一个引用会看到其他值。
将它们视为方框 - 在第一种情况下,您有两个方框,并且将项目从一个方框复制到另一个方框。
在第二个示例中,它们是相同的框 - 两个引用都在内部看到相同的项目,如果添加/删除/修改任何内容,则两者都会受到影响。