C#6.0正在获取语法的列表错误,'';

本文关键字:错误 列表 获取 语法 C#6 | 更新日期: 2023-09-27 18:26:08

我正在分析一个网页,遇到的问题是["www.abc.com/"]和["www.def.com/"]=new List()得到了一个"预期的语法错误"。我创建了一个为HtmlTarget public string Id { get; set; } public Action<HtmlElement> Action { get; set; }设置属性的类,有人有什么建议吗?

public void Spider(string sURL, HtmlDocument doc, int choice)
{
    var urlTargets = new Dictionary<string, List<HtmlTarget>>
    {
        ["www.abc.com/"] = new List<HtmlTarget>()
        {
            new HtmlTarget
            {
                Id = "search",
                Action = e => e.SetAttribute("value", m_sMfgPartNbr)
            },        
            new HtmlTarget
            {
                Id = "submit",
                Action = e => e.InvokeMember("Click")
            }
        },
        ["www.def.com/"] = new List<HtmlTarget>()        
        {        
            new HtmlTarget        
            {        
                Id = "part",        
                Action = e => e.SetAttribute("value", m_sMfgPartNbr)        
            },        
            new HtmlTarget        
            {        
                Id = "submit",        
                Action = e => e.InvokeMember("Click")        
            }        
        }        
    };
    List<HtmlTargets> targets = null;
    if (urlTargets.TryGetValue(url, out targets))        
    {        
        var inputs = doc.Body.GetElementsByTagName("input");
        foreach (HtmlElement element in inputs)        
        {        
            var id = element.GetAttribute("id");
            foreach(var target in targets)        
            {        
                if (target.Id == id)        
                    target.Action(element);        
            }        
        }        
    }        
}

C#6.0正在获取语法的列表错误,'';

C#之前的正确语法应该是

var urlTargets = new Dictionary<string, List<HtmlTarget>>
 {
    { "www.eciaauthorized.com/search", new List<HtmlTarget>()
           ... 
     },
     { "www.findchips.com/search", new List<HtmlTarget>()
           ...
     } 
}