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でコレクションに追加されますか?DictionaryTestDictionary[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 に答える