如何在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;
我有一个 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;