我只想了解应该使用哪一个。C#字典添加与联盟
我有一个MessageListener,其中我有时只会得到一个项目,有时我可能会获得多个项目(可能会达到200条消息)。
方法签名是像下面
public void OnMessage(Message[] messages)
我应该每封邮件添加到现有的信息数据。消息存储在会话内存中。
Dictionary<String,Message> existingMessages = (Dictionary<String,Message>)
Session.GetSessionData("key");
是最好的消息由一个如下
foreach(Message msg in messages)
{
existingMessages.Add(msg);
}
Session.AddData("key",existingMessages);
是更好地创建地图,并与现有的地图合并如下
Dictionary<String,Message> newMap = new Dictionary<String,Message>();
foreach(Message msg in messages)
{
newMap.Add(msg);
}
//combine with existing data
existingMessages.union(newMap);
//put the data back in session memory
Session.AddData("key",existingMessages);
这些方法会给你不同的结果。 'Add'会为重复的条目抛出异常,'Union'只是第一个。 – MarcinJuraszek