参数异常“已添加具有相同密钥的项目”

时间:2015-07-01 21:23:02

标签: c# asp.net-mvc .net-4.0

我收到错误:

  

System.ArgumentException未被用户代码处理         的HResult = -2147024809         消息=已添加具有相同密钥的项目。

尝试在此应用程序中加载页面时。 Visual Studio指向这一行:

_db.GroupProgramPlans.Select(x => new {Code = x.GroupCode, Name = x.Group}).Distinct().ForEach(x=> groups.Add(x.Code,x.Name)); 

作为导致错误的行。代码查询的表没有PK。我在表中查找了重复的行。表中只有大约30行,虽然它们具有公共列值,但没有任何重复行。我试过删除.Distinct()。不确定导致错误的原因以及应该如何处理错误。下面是代码。

 public ActionResult Index()
        {
            var groups = new Dictionary<string,string>();
            _db.GroupProgramPlans.Select(x => new {Code = x.GroupCode, Name = x.Group}).Distinct().ForEach(x=> groups.Add(x.Code,x.Name));

            ViewBag.Groups = groups;

            return View(_db.DocumentTemplates.Where(x => x.Active == true));
        }

1 个答案:

答案 0 :(得分:1)

我会写这样的东西

var groups = _db.GroupProgramPlans
                .GroupBy(x=>x.GroupCode)
                .Select(x=>x.FirstOrDefault())
                .ToDictionary(x=>x.GroupCode,x=>x.Group);