我已将所有国家/地区标记添加到我的资源类中,所有国家/地区标记的名称均为:flag_TLD
- flag_de
,flag_dk
等等。
对于用户,我存储了他们所在国家/地区的TLD,我想在列表中动态显示所有国家/地区标记。
通常,在使用资源时,我使用:GUI.Properties.Resources.<resourcename>
但现在我想在50-100个用户的循环中使用GUI.Properties.Resources.flag_<user.getCountry.TLD>
(例如)。
foreach (var user in getUserList())
{
something.Image = GUI.Properties.Resources.flag_<user.getCountry.TLD>
}
有办法吗?
答案 0 :(得分:2)
您可以通过以下方式获取应用程序中所有资源的列表:
System.Reflection.Assembly thisExe;
thisExe = System.Reflection.Assembly.GetExecutingAssembly();
string [] resources = thisExe.GetManifestResourceNames();
现在你要做的只是循环resources
并使用名称中包含flag_
的元素。
来源: http://msdn.microsoft.com/en-us/library/aa287526(v=vs.71).aspx
修改强> 要根据字符串获取资源,请使用
something.Image = GUI.Properties.Resources.ResourceManager.GetObject("flag_" + user.getCountry.TLD)