public void DictionaryAdapterAvoidsWrapping() {
        var d = 5.Range().ToDictionary(i => i, i => i*i);
        
        // existing readonly dictionary class is not wrapped
        var rd = new ReadOnlyDictionary<int, int>(d);
        rd.AsReadOnlyDictionary().AssertReferenceEquals(rd);
        rd.AsIDictionary().AssertReferenceEquals(rd);

        // back-and-forth of an IReadOnlyDictionary has no effect
        var ar = d.AsReadOnlyDictionary();
        ar.AsIDictionary().AssertReferenceEquals(ar);
        ReadOnlyDic.AsIDictionary().AsReadOnlyDictionary().AssertReferenceEquals(ReadOnlyDic);
    }
Ejemplo n.º 2
0
    public void DictionaryAdapterAvoidsWrapping()
    {
        var d = 5.Range().ToDictionary(i => i, i => i * i);

        // existing readonly dictionary class is not wrapped
        var rd = new ReadOnlyDictionary <int, int>(d);

        rd.AsReadOnlyDictionary().AssertReferenceEquals(rd);
        rd.AsIDictionary().AssertReferenceEquals(rd);

        // back-and-forth of an IReadOnlyDictionary has no effect
        var ar = d.AsReadOnlyDictionary();

        ar.AsIDictionary().AssertReferenceEquals(ar);
        ReadOnlyDic.AsIDictionary().AsReadOnlyDictionary().AssertReferenceEquals(ReadOnlyDic);
    }