小编Emi*_*son的帖子

switch()语句,带有string.contains()作为参数

我有点新手C#,我正在尝试创建一个switch返回int与给定文件名对应的ID()的方法.

例如:

var fileName = "file-example_MAP_COPY.xml";
var fileTypeId = GetFileTypeId(fileName); // Returns 3310
Run Code Online (Sandbox Code Playgroud)

GetFileTypeId方法看起来像这样:

private GetFileTypeId(string fileName)
{
    switch(string.Contains(fileName))
    {
        case ".xsd":
            return 3010;
        case "_Gui.xml":
            return 3120;
        case ".xml":
            return 3300;
        case "_MAP_COPY.xml":
            return 3310;
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我无法修剪实际的文件名,只保留扩展名,因为文件名可能包含下划线.如果在第一个下划线处修剪,则名称为" example_1_MAP_COPY.xml "的文件将被修剪为" _1_MAP_COPY.xml ",从而导致文件扩展名出错.

一个if声明可以在这里工作,但由于我有18个不同的情况,我想找到另一个解决方案,而不是写18个if语句.

有没有什么方法我可以去做这个,switch或许是用语句或字典?

c# dictionary if-statement switch-statement

2
推荐指数
2
解决办法
1983
查看次数

标签 统计

c# ×1

dictionary ×1

if-statement ×1

switch-statement ×1