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

C# 如何在KeyValuePair列表中搜索重复的键值并删除较早的键值,c#,.net,list,keyvaluepair,C#,.net,List,Keyvaluepair,我有一个KeyValuePair列表,用于存储传入消息中的一些信息 List<KeyValuePair<int, string>> qInfoTempList = new List<KeyValuePair<int, string>>(); qInfoTempList.Add(new KeyValuePair<int, string>(eventInfo.ReferenceId, eventInfo.StringValue)); L

我有一个
KeyValuePair
列表,用于存储传入消息中的一些信息

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

qInfoTempList.Add(new KeyValuePair<int, string>(eventInfo.ReferenceId, eventInfo.StringValue));
List qinfotemplast=new List();
添加(新的KeyValuePair(eventInfo.ReferenceId,eventInfo.StringValue));
消息传入后,消息的参考id存储为键,消息的选定值存储为列表中的值。如何当场检测到重复的密钥并删除列表中较早的密钥


在这种情况下,是否最好使用
字典
而不是
列表

如果不需要重复项,可以使用
字典
,并使用以下方法检查密钥是否存在:


如果不需要重复项,可以使用
字典
,并使用以下方法检查密钥是否存在:


如果您总是想删除上一个条目,那么是的,最好使用字典而不是列表。IMHO
Dictionary
显然是这里选择的数据结构,它正是您想要的。@Thorarins在这种情况下,他实际上不需要搜索列表。创建映射将更容易、更快。如果您总是想删除以前的条目,那么是的,最好使用字典而不是列表。IMHO
Dictionary
显然是这里选择的数据结构,它完全满足您的要求。@Thorarins在这种情况下,他实际上不需要搜索列表。创建映射将更容易、更快。您好@YuvalItzchakov,感谢您的快速响应。所以,如果我使用字典,当消息传入时,字典的大小会继续增加吗?第一次运行后,密钥将被复制,不会生成新密钥。@是的,它将在插入记录时动态调整大小。您好@YuvalItzchakov,感谢您的快速响应。所以,如果我使用字典,当消息传入时,字典的大小会继续增加吗?第一次运行后,密钥将被复制,并且不会生成新密钥。@是的,它将在插入记录时动态调整大小。
var infoById = new Dictionary<int, string>();
if (infoById.ContainsKey(someId))
{
    // Do override logic here
}
infoById[someId] = value;