Dictionary:- System.ArgumentException: '已添加具有相同键的项目。键:MediumTitleSync'

问题描述 投票:0回答:1

我的 .net core 8.0 中有以下代码:-

foreach (var group in groupedWOSPDBySparePart)
{
Dictionary<string, object> item = new Dictionary<string, object>()
        {  { "SparePartID", group.SparePartID },{ "MediumTitleSync", SpareParttitleIdMap.SingleOrDefault(a=>a.Key==group.SparePartID).Value },  { "MediumID", group.MediumID },{ "Month", CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(int.Parse(group.Month)) },{ "MonthNumber", group.Month },{ "TotalNumberSparePartRequests", group.TotalCount },
            { "Year", group.Year },{ "MediumTitleSync",MediumtitleIdMap.FirstOrDefault(a=>a.Key==group.MediumID).Value}
        };
await sparepartdasjboardList.Items.AddAsync(item);

}

但我收到此错误:-

System.ArgumentException: 'An item with the same key has already been added. Key: MediumTitleSync'

那么为什么代码假设 MediumTitleSync 是键,我可以有一个允许重复键的字典吗?

c# .net dictionary .net-8.0
1个回答
0
投票

您正在使用集合初始值设定项语法。让我们通过添加缩进和换行来格式化它,使其更具可读性:

Dictionary<string, object> item = new Dictionary<string, object>()
{  
    { "SparePartID", group.SparePartID },

    { "MediumTitleSync", SpareParttitleIdMap.SingleOrDefault(a=>a.Key==group.SparePartID).Value },

    { "MediumID", group.MediumID },
    { "Month", CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(int.Parse(group.Month)) },
    { "MonthNumber", group.Month },
    { "TotalNumberSparePartRequests", group.TotalCount },
    { "Year", group.Year },

    { "MediumTitleSync",MediumtitleIdMap.FirstOrDefault(a=>a.Key==group.MediumID).Value}
};

每对

{A,B}
都会像这样调用
Add(Key, Value)
方法
Add(A, B)

您为“MediumTitleSync”调用该方法两次

© www.soinside.com 2019 - 2024. All rights reserved.