如何在KeyValuePair列表中搜索重复键并删除较早的键值

How to search duplicated key in KeyValuePair list and delete the earlier key value

我有一个 KeyValuePair 列表用于存储来自传入消息的一些信息。

List<KeyValuePair<int, string>> qInfoTempList = new List<KeyValuePair<int, string>>();

qInfoTempList.Add(new KeyValuePair<int, string>(eventInfo.ReferenceId, eventInfo.StringValue));

消息传入后,消息的引用 ID 存储为键,消息的选定值存储为列表中的值。如何当场检测到重复的密钥并删除列表中较早的密钥?

在这种情况下,使用Dictionary而不是List更好吗?

如果您不想重复,可以使用 Dictionary<TKey, TValue>,并使用 ContainsKey:

检查密钥是否存在
var infoById = new Dictionary<int, string>();
if (infoById.ContainsKey(someId))
{
    // Do override logic here
}

或者如果你不关心前面的项目,你可以简单地替换它:

infoById[someId] = value;