Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.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#_.net - Fatal编程技术网

C# 读取数组的数组

C# 读取数组的数组,c#,.net,C#,.net,我有一块C#看起来像这样 public static string[,] FileTypesDict = new string[,] { {"txt", "ReadFile"}, {"doc", "ReadMSOfficeWordFile"}, {"docx", "ReadMSOfficeWordFile"}, {"xls", "ReadMSOfficeExcelFile"},

我有一块C#看起来像这样

    public static string[,] FileTypesDict = new string[,] {
            {"txt", "ReadFile"},
            {"doc", "ReadMSOfficeWordFile"},
            {"docx", "ReadMSOfficeWordFile"},
            {"xls", "ReadMSOfficeExcelFile"},
            {"xlsx", "ReadMSOfficeExcelFile"},
            {"pdf", "ReadPDFFile"},
    };
我想在另一个像这样的函数中使用它

    static void FindFiles() {
        foreach (string type[] in FileTypesDict) {
            // Find all files with extension
            string[] files = Directory.GetFiles(FilePath, type[0]);
            // To be used in another fun way, the longer description
            string filetype = type[1]
        }
    }
当然,这是行不通的。。。它似乎只有在我这样做时才起作用-->

将打印每个数组的每个部分,如下-->


我基本上希望查看数组数组并使用循环中的每个数组…

您的问题的解决方案是将
FileTypesDict
定义为
string[][]
。现在我同意你的意见,你应该用字典来做这件事。

见这里:

静态void FindFiles()
{
对于(int i=0;i
你应该使用
字典来做这件事,因为它使事情更加整洁易读

您可以这样做:

Dictionary<string, string> fileTypes = new Dictionary<string, string>()
{
    {"txt", "ReadFile"},
    {"doc", "ReadMSOfficeWordFile"},
    {"docx", "ReadMSOfficeWordFile"},
    {"xls", "ReadMSOfficeExcelFile"},
    {"xlsx", "ReadMSOfficeExcelFile"},
    {"pdf", "ReadPDFFile"}
};

foreach (KeyValuePair<string, string> file in fileTypes)
{
    Console.WriteLine(String.Format("{0} - {1}", file.Key, file.Value));
}
   Dictionary<string, List<string>> fileTypesWithList = new Dictionary<string, List<string>>()
        {
            { "txt", new List<string>() { "Some", "Other", "Data" }}
        };

        foreach (KeyValuePair<string, List<string>> file in fileTypesWithList)
        {
            foreach (string s in file.Value)
            {
                Console.WriteLine(String.Format("{0} - {1}", file.Key, s));
            }

        }
字典文件类型=新字典()
{
{“txt”,“ReadFile”},
{“doc”,“ReadMSOfficeWordFile”},
{“docx”,“ReadMSOfficeWordFile”},
{“xls”,“ReadMSOfficeExcelFile”},
{“xlsx”,“ReadMSOfficeExcelFile”},
{“pdf”,“ReadPDFFile”}
};
foreach(文件类型中的KeyValuePair文件)
{
WriteLine(String.Format(“{0}-{1}”,file.Key,file.Value));
}
或者,如果希望将值设置为字符串的集合,可以执行以下操作:

Dictionary<string, string> fileTypes = new Dictionary<string, string>()
{
    {"txt", "ReadFile"},
    {"doc", "ReadMSOfficeWordFile"},
    {"docx", "ReadMSOfficeWordFile"},
    {"xls", "ReadMSOfficeExcelFile"},
    {"xlsx", "ReadMSOfficeExcelFile"},
    {"pdf", "ReadPDFFile"}
};

foreach (KeyValuePair<string, string> file in fileTypes)
{
    Console.WriteLine(String.Format("{0} - {1}", file.Key, file.Value));
}
   Dictionary<string, List<string>> fileTypesWithList = new Dictionary<string, List<string>>()
        {
            { "txt", new List<string>() { "Some", "Other", "Data" }}
        };

        foreach (KeyValuePair<string, List<string>> file in fileTypesWithList)
        {
            foreach (string s in file.Value)
            {
                Console.WriteLine(String.Format("{0} - {1}", file.Key, s));
            }

        }
Dictionary fileTypesWithList=newdictionary()
{
{“txt”,新列表(){“一些”,“其他”,“数据”}
};
foreach(fileTypesWithList中的KeyValuePair文件)
{
foreach(file.Value中的字符串s)
{
WriteLine(String.Format(“{0}-{1}”,file.Key,s));
}
}

有什么理由不使用
词典吗?
foreach(string[]键入FileTypesDict)
-这样可以解决问题吗?请不要在标题前面加“.Net C#”之类的前缀。这就是标签的作用。谢谢你的例子和更好的解决方案,我正在尝试!今天终于有机会尝试了。我花了一点时间才意识到我需要“使用System.Collections.Generic;”但在那之后,它似乎工作得很完美对我正在做的事情有一个非常简单的解决办法。既然这本词典比较好,我就试着用它来代替。谢谢
   Dictionary<string, List<string>> fileTypesWithList = new Dictionary<string, List<string>>()
        {
            { "txt", new List<string>() { "Some", "Other", "Data" }}
        };

        foreach (KeyValuePair<string, List<string>> file in fileTypesWithList)
        {
            foreach (string s in file.Value)
            {
                Console.WriteLine(String.Format("{0} - {1}", file.Key, s));
            }

        }