gpt4 book ai didi

c# - 如何比较两个有序字典之间的元素值

转载 作者:行者123 更新时间:2023-11-30 17:43:00 24 4
gpt4 key购买 nike

我正在尝试比较两个有序字典的元素中的值。我无法找到正确的编码来获取索引 0 处的元素并将它们转换为 DictionaryEntry。我正在尝试使用以下代码:

DictionaryEntry card1 = (DictionaryEntry)(player1.Hand[0]); 
DictionaryEntry card2 = (DictionaryEntry)(player2.Hand[0]);


if ((int)card1.Value > (int)card2.Value)
{
// do stuff
}

代码通过了 intellisense,但因无效转换而爆炸。我也会码字

 var card1 = player1.Hand[0];

但它不允许我检索 card1.Value。据我所知,card1 需要转换为 DictionaryEntry,但我不知道该怎么做。

任何帮助将不胜感激。谢谢。

最佳答案

OrderedDictionary 中的索引器实现如下:

public object this[int index]
{
get { return ((DictionaryEntry)objectsArray[index]).Value; }
set { ... }
}

它返回值,而不是键/值对。这就是为什么不能将其转换为 DictionaryEntry 的原因。

改为这样进行比较,将索引器的返回值直接转换为 int:

if ((int)player1.Hand[0] > (int)player2.Hand[0])
{
// do stuff
}

从您的评论来看,您似乎也希望能够修改 key 。

AFAIK,您必须使用键或索引来获取值,然后删除旧元素并添加/插入新元素:

 var value = (int)player1.Hand[0];
player1.Hand.RemoveAt(0);
player1.Hand.Add("someNewKey", value);

var value = (int)player1.Hand["oldKey"];
player1.Hand.Remove("oldKey");
player1.Hand.Add("someNewKey", value);

关于c# - 如何比较两个有序字典之间的元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31487203/

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