如何在列表中获取资源及其名称?

时间:2015-02-21 13:48:28

标签: c# list picturebox

这是我的问题所在: -

  1. 我在项目的Resources文件夹中添加了很多图像和其他文件(如.wav)。图像文件的名称如" woof1"," woof2&#​​34; ....." env1"," env2" ... ......" alpha1"," alpha2" .....等等。

  2. 我想访问所有以ONLY特定前缀开头的图像文件(例如" woof#"或" alpha#")并希望将这些图像存储在列出并在List中存储检索到的图像的名称。

  3. 请帮帮我。我的项目是制作记忆游戏......前缀定义了不同类别的图像。我真的需要知道这一点。

2 个答案:

答案 0 :(得分:1)

资源是否作为资源添加到项目文件中?如果是,您可以使用Assembly.GetManifestResourceNames

来自MSDN: Finding the Names of Resources in an Assembly 的示例代码:

System.Reflection.Assembly thisExe; 
thisExe = System.Reflection.Assembly.GetExecutingAssembly();
string [] resources = thisExe.GetManifestResourceNames();
string list = "";

// Build the string of resources.
foreach (string resource in resources)
    list += resource + "\r\n";

然后在过滤资源名称以获取所需的资源名称后(例如,使用LINQ或创建新的List并在foreach循环中填充它等),使用Assembly.GetManifestResourceStream实际上获取资源。

如果没有将文件添加到项目中,我强烈建议您这样做,因为这意味着如果您发布文件,您将分发较少的文件。有关如何执行此操作,请参阅MSDN: resource files

答案 1 :(得分:1)

在这篇文章中看到我的回答:

https://stackoverflow.com/a/28558647/2416394

您可以使用

代替按名称获取资源
var list = Assembly.GetExecutingAssembly().GetManifestResourceNames();

获取资源并对它们运行LINQ过滤器。