7

考虑我是否有Dictionary<Key,List<item>> TestDictionary

如果我做:

List<item> someCollection;
TestDictionary.TryGetValue(someKey,out someCollection); //assuming that someCollection will not return null;
someCollection.add(someItem);

对象someItem会被添加到集合中的DictionaryvalueTestDictionary[someKey]吗?

4

2 回答 2

11

是的,如果它是 Ref 类型,您将拥有该对象的引用,如果它是 Value 类型,当然还有一个副本

于 2012-11-26T08:27:12.433 回答
1

Jon Skeet 在这方面发表了很棒的文章。但是,无论如何,这里的代码片段可以帮助你:

class Item
{}

void Main()
{
    var dictionary = new Dictionary<int, Item>();
    dictionary[1] = new Item();

    Item i1;
    Item i2;

    dictionary.TryGetValue(1, out i1);
    dictionary.TryGetValue(1, out i2);

    Debug.Assert(object.ReferenceEquals(i1, i2));
}
于 2012-11-26T08:48:51.877 回答