Como inicializar o ReadOnlyDictionary?
Eu tenho um dicionário imutável que é exposto em uma classe.
Atualmente, meu código se parece
using System.Collections.Generic;
using System.Collections.ObjectModel;
public class FooClass
{
private static ReadOnlyDictionary<string, byte> _validRevisions
= new ReadOnlyDictionary<string, byte>(
new Dictionary<string, byte>() {
{ "1.0", 0x00 },
{ "1.1", 0x01 },
{ "1.2", 0x02 },
{ "1.3", 0x03 }
} );
public static ReadOnlyDictionary<string, byte> ValidRevisions => _validRevisions;
// other FooClass contents...
}
Eu usei o campo de apoio_validRevisions
como não consegui descobrir uma maneira melhor de criar uma propriedade de dicionário constante compartilhada. Existe uma maneira mais clara de gerenciar isso ou talvez eu deva tornar o campo público?
Minha principal pergunta é: existe uma maneira mais curta de inicializar o_validRevisions
próprio campo? Criar um Dicionário embutido para passá-lo para um Dicionário (que passa a ser somente leitura) parece um pouco ... um cheiro de código. É isso? Existe uma maneira melhor?
EDIT: mais uma coisa sobre o ROD que acabei de notar, não há métodos para oferecer suporte à verificação de se ele contém um determinado valor ... existe uma razão para isso relacionado ao 'somente leitura?