为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法将字典对的值传递给 C# 中的变量?

有没有办法将字典对的值传递给 C# 中的变量?

C#
肥皂起泡泡 2022-07-23 09:45:17
我是 C# 的新手。我试图根据 IF 语句的计算结果是否为 True,将字典对的值存储在变量中,但它的行为不像我预期的那样。我正在尝试通过我正在从事的项目获得创意,并想学习如何以这种方式使用字典。string newFileName = "EOYReportPRF.xls";string dirInfo_Source = "C:\Temp\"Dictionary<string, string> fileNameChanges = new Dictionary<string, string>();fileNameChanges.Add("EOYReportPRF.xls", "EOY_PRF.xls");fileNameChanges.Add("PayrollEOY.xls", "EOY_SU.xls");fileNameChanges.Add("PRFFundingStatement.xls", "FS_PRF.xls");fileNameChanges.Add("SUFundingStatement.xls", "FS_SU.xls");if (fileNameChanges.ContainsKey(newFileName))    {    File.Move(dirInfo_Source + newFileName, dirInfo_Source + fileNameChanges.Values.ToString());    }我知道代码不正确。我只是想让它正常工作。我想遍历一个目录,将每个文件的名称传递给 newFileName 变量。如果 newFileName 匹配字典中的键,例如“EOYReportPRF.xls”,那么我想使用字典对的值作为文件名。需要一些帮助来思考这个问题。谢谢!
查看完整描述

2 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

您需要获取密钥的实际值:


        string newFileName = "EOYReportPRF.xls";

        string dirInfo_Source = @"C:\Temp\";


        Dictionary<string, string> fileNameChanges = new Dictionary<string, string>();

        fileNameChanges.Add("EOYReportPRF.xls", "EOY_PRF.xls");

        fileNameChanges.Add("PayrollEOY.xls", "EOY_SU.xls");

        fileNameChanges.Add("PRFFundingStatement.xls", "FS_PRF.xls");

        fileNameChanges.Add("SUFundingStatement.xls", "FS_SU.xls");


        if (fileNameChanges.ContainsKey(newFileName))

        {

            var filename = fileNameChanges[newFileName];

            File.Move(dirInfo_Source + newFileName, dirInfo_Source + filename);

        }

那应该行得通。


查看完整回答
反对 回复 2022-07-23
?
守着一只汪

TA贡献1872条经验 获得超3个赞

您可以尝试使用 TryGetValue 方法。


 string val;

 string [] fileEntries = Directory.GetFiles(dirInfo_Source);


    foreach(string fileName in fileEntries){

        if(fileNameChanges.TryGetValue(fileName, out val)){

               File.Move(dirInfo_Source + fileName , dirInfo_Source + val);   

       }


 }


查看完整回答
反对 回复 2022-07-23
  • 2 回答
  • 0 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信