在公共密钥上存储单独的数据和组

时间:2011-03-07 23:46:56

标签: c# generics multidimensional-array

使用可以处理多个连接(即会话)的API,每个会话都有一个唯一ID(sessionID),并通过序列号跟踪所有入站和出站消息。

的Class1

public void Method1(SessionID sessionID, Message message)
{       
    var ID = sessionID;
    var foo = message.InSeqNo;
}

public void Method2(SessionID sessionID, Message message)
{
    var ID = SessionID;
    var bar = message.OutSeqNo;
}

我很好奇你会如何建议将这些数据存储在一起,这样每个实例都可以根据其sessionID独立显示。

无需存储以前的号码,因为它们仅显示。 没有任何SessionID会改变,每个序列号都会独立更新。

我能想到的最好的事情是使用两个单独的字段,如Dictionary<sessionID, number>,。更新每个字段,重新添加新值,然后通过LINQ连接两个字段并显示信息。

1 个答案:

答案 0 :(得分:1)

为什么不包含特定ID的入站和出站序列号的单个类?

class SessionInfo
{
    public int SessionId { get; private set; }
    public int InSeqNo { get; set; }
    public int OutSeqNo { get; set; }
}

Dictionary Sessions = new Dictionary();

要更新会话的InSeqNo,请:

SessionInfo sess;
if (Sessions.TryGetValue(sessionId, out sess))
{
    ++sess.InSeqNo;
}

或者我在你的问题中遗漏了一些基本的东西?