Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将资源转换为数组或字典_C#_Indexing_Resources - Fatal编程技术网

C# 将资源转换为数组或字典

C# 将资源转换为数组或字典,c#,indexing,resources,C#,Indexing,Resources,在我的项目中,我有525个Wave文件作为资源 我想将所有这些Wave文件加载到流数组中,并将它们存储起来以供以后使用 问题是我无法索引资源以获取这些文件 资源按名称排序,我想用这个顺序填充数组 资源中没有文件夹。只是波浪文件。而且里面没有额外的文件。总共有525个波形文件 我希望我能做这样的事 Stream[] waves = new Stream[525]; for (int i = 0; i < waves.Length; i++)

在我的项目中,我有525个Wave文件作为资源

我想将所有这些Wave文件加载到流数组中,并将它们存储起来以供以后使用

问题是我无法索引资源以获取这些文件

资源按名称排序,我想用这个顺序填充数组

资源中没有文件夹。只是波浪文件。而且里面没有额外的文件。总共有525个波形文件

我希望我能做这样的事

        Stream[] waves = new Stream[525];

        for (int i = 0; i < waves.Length; i++)
        {
            waves[i] = Resources[i];
        }
Stream[]waves=新流[525];
对于(int i=0;i
文件名的示例名称

A00,A01,A02,A03,…B01,B02,B03,…C01

我也试过了。但是文件名不容易被索引

此外,如果有任何方法将资源放入字典,它将变得更容易

        Stream[] waves = new Stream[525];
        Dictionary<int, Stream> Res = new Dictionary<int, Stream>();

        for (int i = 0; i < waves.Length; i++)
        {
            waves[i] = Res[i];
        }
Stream[]waves=新流[525];
Dictionary Res=新字典();
对于(int i=0;i
如果您有权访问资源文件夹,请尝试以下代码:

        string[] files = Directory.GetFiles(@"resources", "*.wav");
        Dictionary<string, Stream> dic = new Dictionary<string, Stream>();
        foreach (var file in files)
        {
            byte[] data = File.ReadAllBytes(file);
            MemoryStream stream = new MemoryStream(data);
            dic.Add(Path.GetFileNameWithoutExtension(file), stream);
        }

        foreach (var item in  dic.OrderBy(d=>d.Key))
        {
            // here store item which has been ordered by name!
        }
string[]files=Directory.GetFiles(@“resources”,“*.wav”);
Dictionary dic=新字典();
foreach(文件中的var文件)
{
byte[]data=File.ReadAllBytes(文件);
MemoryStream stream=新的MemoryStream(数据);
dic.Add(Path.GetFileNameWithoutExtension(文件),stream);
}
foreach(dic.OrderBy中的变量项(d=>d.Key))
{
//此处存储已按名称订购的商品!
}

不要试图按名称对它们进行排序,而是将它们放入字典中,并使用文件名作为键。排序无关紧要,你可以通过它的名字得到你想要的,这更简单。你能给我一个解决方案或者这个解决方案的链接吗?我找不到任何有关将资源放入词典的信息。我也在使用winforms。谢谢如果我能在@Pierre Luccineault中这样做,那么它将变得非常简单。您将文件名存储在哪里?wave文件位于资源文件夹(
Resource/xxx.wave
)中,并带有它们的名称。我没有在代码中存储文件名。事实上,我想得到循环中的资源,因为525个文件太多了@AliAdlDid你试过把它们存到字典里吗?谢谢。我会留意的