使用词典时C#中的未知问题

时间:2016-01-04 16:05:32

标签: c# dictionary

我有一个代码,可以从raw.githubusercontent.com获取一行文本

WebRequest webRequest = WebRequest.Create(getargs[1]);
using (WebResponse response = webRequest.GetResponse())
using (Stream content = response.GetResponseStream())
using (StreamReader reader = new StreamReader(content))
{
    string strCntent = reader.ReadToEnd();
    string[] plgnCntn;
    plgnCntn = strCntent.Split('(', ')', ':', ',');
    if (plgnCntn[0] != "validplgn")
    {
        newln("Plgn couldn't be installed. Not validated.");
    }
    else
    {
        string dmy = plgnCntn[1];
        dummy = dmy.Split('-');
        install_id = Convert.ToInt32(dummy[1]);
        dummy = plgnCntn[2].Split('-');
        install_plgn_nme = dummy[1];
        dummy = plgnCntn[3].Split('-');
        install_cmmd = dummy[1];
        plgnbyID.Add(install_id, install_plgn_nme);
        plgncmds.Add(install_plgn_nme, install_cmmd);
        inverseplgncmds.Add(install_cmmd, install_plgn_nme);
        plgnparse.Add(install_plgn_nme, plgnCntn[4]);
    }
}

一切似乎都很好,程序获取数据,我用

进行测试
  

" validplgn(id-0001,plgn_nme-plgn,cmmd-plgninfo):{ln-此插件已从创建者的GitHub下载; hlp-hlp}"

获取数据时,会将其拆分为

  

" validplgn"," id-0001"," plgn_nme-plgn"," cmmd-plgninfo"," { ln-此插件已从创作者的GitHub下载; hlp-hlp}"

应该测试[0] ==" validplgn",将所有数据保存在词典中。保存所有这些数据后,程序将继续运行并在循环中检查命令。基本上检测我放在文本框中的内容,检查IF语句并给出答案,当文本框中的内容与任何命令都不匹配时,它写道:

  

"命令未被识别。请输入hlp"。

我认为问题来自于此代码:

else if (plgncmds.ContainsValue(inp))
{
    string plgnnme;
    string toparse;
    string[] splitparse = {};
    int arglength;
    inverseplgncmds.TryGetValue(inp, out plgnnme);
    plgnparse.TryGetValue(plgnnme, out toparse);
    splitparse = toparse.Split(';');
    arglength = splitparse.Length;
    foreach (string statement in splitparse)
    {
        string[] dmmy = statement.Split('-');
    ...

在检查程序循环的最后,测试客户端的未知命令是否与以下任何已下载命令匹配:

  

否则if(plgncmds.ContainsValue(inp))

所以,当我输入" plgninfo"时,这是执行此代码的文本:

  

{ln-此插件已从创作者的GitHub下载; hlp-hlp}   之前已经宣布,当cmd-plgninfo"被拆分并保存了plgninfo部分。现在,这段代码使用命令(plgninfo)获取字典上的键,但它不会显示任何内容。这就是问题所在。它应该打印"这个插件已经从创作者的GitHub"并显示命令的程序帮助" hlp"。但是没有,我在VS 2013中有ReSharper 9并且任何问题都被抛出,没有任何反应。

我希望这是一种解决方法。 感谢。

0 个答案:

没有答案