我的 .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 是键,我可以有一个允许重复键的字典吗?
您正在使用集合初始值设定项语法。让我们通过添加缩进和换行来格式化它,使其更具可读性:
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”调用该方法两次