C# 将字符串转换为图标并指定给图标字段

C# 将字符串转换为图标并指定给图标字段,c#,wpf,font-awesome,C#,Wpf,Font Awesome,我有一个xml将图标保存为字符串形式 <Icon Name="faMainMenuFile"> <Content>FolderOutline</Content> <Size>50</Size> </Icon> 我尝试创建一个函数,将字符串转换为FontAwesome.WPF.FontAwesomeIcon public FontAwesome.WPF.FontAweso

我有一个xml将图标保存为字符串形式

 <Icon Name="faMainMenuFile">
      <Content>FolderOutline</Content>
      <Size>50</Size>
    </Icon>
我尝试创建一个函数,将字符串转换为FontAwesome.WPF.FontAwesomeIcon

public FontAwesome.WPF.FontAwesomeIcon GetUIFontAwesome(string strIcon)
    {
        if(strIcon == "Calculator") return FontAwesome.WPF.FontAwesomeIcon.Calculator;
        if (strIcon == "FolderOutline") return FontAwesome.WPF.FontAwesomeIcon.FolderOutline;

        return FontAwesome.WPF.FontAwesomeIcon.None;
    }
但我会创建一个巨大的列表来处理这个功能


如何修复它?

您可以执行此操作将字符串转换为枚举:

public FontAwesome.WPF.FontAwesomeIcon GetUIFontAwesome(string strIcon)
{
    FontAwesome.WPF.FontAwesomeIcon item;
    if (Enum.TryParse(strIcon, out item))
        return item;
    else 
        return FontAwesome.WPF.FontAwesomeIcon.None; 
}

如果名称与字段/属性匹配,则可以使用反射。
public FontAwesome.WPF.FontAwesomeIcon GetUIFontAwesome(string strIcon)
{
    FontAwesome.WPF.FontAwesomeIcon item;
    if (Enum.TryParse(strIcon, out item))
        return item;
    else 
        return FontAwesome.WPF.FontAwesomeIcon.None; 
}