gpt4 book ai didi

c# - 在 C# 中为 OrderedDictionary 连续赋值

转载 作者:太空宇宙 更新时间:2023-11-03 23:26:59 25 4
gpt4 key购买 nike

我有两个键值对,现在我想用较小的值以串行方式填充较大的键值对。

  OrderedDictionary pickersPool = new OrderedDictionary(); // Small
OrderedDictionary pickersToTicketMap = new OrderedDictionary(); // Big

pickersPool.Add("emp1", 44);
pickersPool.Add("emp2", 543);

现在我需要将 pickersToTicketMap 更新为如下所示:

   ("100", 44);
("109", 543);
("13", 44);
("23", 543);

所以基本上我需要 pickersPool 值来循环遍历 pickersToTicketMap 字典的键。

我需要 pickerPool 值来保持循环 pickersToTicketMap 并连续更新其值。

pickersToTicketMap 有序列表最初的值为:

   ("100", "null");
("109", "null");
("13", "null");
("23", "null");

所以我需要 PickerPool orderedDictionary 的值以重复的方式填充这些空值。

最佳答案

听起来你应该从 List<string> 开始(或者可能是 List<int> ,因为它们似乎都是整数......)而不是用空条目填充你的 map 开始。所以像这样:

List<string> tickets = new List<string> { "100", "109", "13", "23" };

然后您可以填充您的 pickersToTicketMap作为:

var pickers = pickersPool.Values;
var pickerIterator = pickers.GetEnumerator();
foreach (var ticket in tickets)
{
if (!pickerIterator.MoveNext())
{
// Start the next picker...
pickerIterator = pickers.GetEnumerator();
if (!pickerIterator.MoveNext())
{
throw new InvalidOperationException("No pickers available!");
}
}
ticketToPickerMap[ticket] = pickerIterator.Current;
}

请注意,我已将名称从 pickersToTicketMap 更改为至 ticketToPickerMap因为这似乎是您的真正意思 - 键是票,值是选择器。

另请注意,我不是处理来自 pickers 的迭代器.这通常是个坏主意,但在这种情况下,我假设 OrderedDictionary.Values.GetEnumerator() 返回的迭代器不需要处置。

关于c# - 在 C# 中为 OrderedDictionary 连续赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33517620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com