Enlace de valor enum con recurso de cadena localizada

Relacionado:Obtener enumeración de atributo enum

Quiero la forma más fácil de vincular una enumeración y es asociar valores de cadena localizada a algo.

Si coloco la enumeración y la clase en el mismo archivo, me siento algo seguro, pero tengo que asumir que hay una mejor manera. También he considerado que el nombre de la enumeración sea el mismo que el nombre de la cadena de recursos, pero me temo que no siempre puedo estar aquí para imponerlo.

using CR = AcmeCorp.Properties.Resources;

public enum SourceFilterOption
{
    LastNumberOccurences,
    LastNumberWeeks,
    DateRange
    // if you add to this you must update FilterOptions.GetString
}

public class FilterOptions
{
    public Dictionary<SourceFilterOption, String> GetEnumWithResourceString()
    {
        var dict = new Dictionary<SourceFilterOption, String>();
        foreach (SourceFilterOption filter in Enum.GetValues(typeof(SourceFilterOption)))
        {
            dict.Add(filter, GetString(filter));
        }
        return dict;
    }

    public String GetString(SourceFilterOption option)
    {
        switch (option)
        {
            case SourceFilterOption.LastNumberOccurences:
                return CR.LAST_NUMBER_OF_OCCURANCES;
            case SourceFilterOption.LastNumberWeeks:
                return CR.LAST_NUMBER_OF_WEEKS;
            case SourceFilterOption.DateRange:
            default:
                return CR.DATE_RANGE;
        }
    }
}

Respuestas a la pregunta(5)

Su respuesta a la pregunta