ConcurrentDictionary<(enum a,enum b),T>?

时间:2017-10-25 23:45:24

标签: c# dictionary key-value concurrentdictionary

some api dode中找到了这个。 VS 2015没有接受将两个枚举作为关键,我以前从未见过这样的声明。我认为它已经为谁写了它,所以我应该学习什么??

private readonly ConcurrentDictionary<(Pair c, ChannelType o), ClientWebSocket> _wsClients;

Pair和ChannelType是枚举。

1 个答案:

答案 0 :(得分:2)

这是C#7.0中引入的值元组的语法糖。在这种情况下,它将两个值组合成一个值。阅读有关价值元组in this introduction的更多信息。

它可以在字典的键中使用的原因是该值是相等的,如果元组中的每个值与另一个值匹配,它将被认为是相同的。

有关值元组与基于类的元组的更多信息,请参阅What's the difference between System.ValueTuple and System.Tuple?