【问题标题】:Tuple equality for Dictionary字典的元组相等
【发布时间】:2014-10-10 16:43:25
【问题描述】:

我需要一个复合键(两个字符串)作为字典的查找值。我在想我可以为此使用Tuple<string,string>,但据我了解,字典会执行引用相等检查,我永远不会得到匹配。

我该怎么做才能执行实际的字符串比较?

这是我得到的:

protected Dictionary<Tuple<string, string>, WopiSession> _sessions;

...

var sessionKey = new Tuple<string, string>(accessToken, fileToken);
WopiSession session;

if (!_sessions.TryGetValue(sessionKey, out session))
{
    session = new WopiSession();
    _sessions.Add(sessionKey, session);
}

【问题讨论】:

  • 你为什么不试试看?
  • 是的,所以你甚至没有费心在这里搜索重复的问题。
  • 无意冒犯,但我已经这样做了。
  • berate me for overlooking it .. 哦!不..不要从我的评论中误会我的意思。该评论只是想说..“您大多没有正确搜索”,而不是让您感到难过。没有不好的感觉..和平兄弟。

标签: c#


【解决方案1】:

你不需要做任何事情。 Tuple 覆盖 object 的默认相等语义,以创建它所代表的所有对象的哈希的复合哈希,并且其 Equals 方法比较每个组合项的相等性。由于字符串还基于字符串相等的语义覆盖相等,因此您的代码将按原样运行。

【讨论】:

    猜你喜欢
    • 2016-06-07
    • 2014-08-07
    • 2023-01-19
    • 2012-02-04
    • 1970-01-01
    • 2017-09-17
    • 2021-11-01
    • 1970-01-01
    • 2015-07-23
    相关资源
    最近更新 更多