Jak mogę uzyskać wartość wyliczoną z jej opisu?

Mam wyliczenie reprezentujące wszystkie kody zestawu materiałów w systemie:

<code>public enum EAssemblyUnit
{
    [Description("UCAL1")]
    eUCAL1,
    [Description("UCAL1-3CP")]
    eUCAL13CP,
    [Description("UCAL40-3CP")]
    eUCAL403CP, // ...
}
</code>

W starym kodzie w innej części systemu mam obiekty oznaczone łańcuchami, które pasują do opisów enum. Biorąc pod uwagę jeden z tych ciągów, jaki jest najczystszy sposób na uzyskanie wartości wyliczeniowej? Wyobrażam sobie coś takiego:

<code>public EAssemblyUnit FromDescription(string AU)
{
    EAssemblyUnit eAU = <value we find with description matching AU>
    return eAU;
}
</code>

questionAnswers(3)

yourAnswerToTheQuestion