相关疑难解决方法(0)

.NET词典中的重复键?

.NET基类库中是否有允许使用重复键的字典类?我发现的唯一解决方案是创建一个类,例如:

Dictionary<string, List<object>>
Run Code Online (Sandbox Code Playgroud)

但这对实际使用非常恼火.在Java中,我相信MultiMap可以实现这一点,但是在.NET中找不到模拟.

.net c# dictionary multimap

243
推荐指数
11
解决办法
20万
查看次数

相当于.NET Framework 3.5的Tuple(.NET 4)

.NET Framework 3.5中是否存在与.NET 4 Tuple等效的类?

我想使用它来从方法返回多个值,而不是创建一个struct.

c# tuples .net-3.5

58
推荐指数
4
解决办法
4万
查看次数

惊人的元组(in)平等

直到今天,我对.NET Tuple类的理解是他们将他们的实现委托Equals()给他们的内容,允许我将它们等同并"按值"进行比较.

然后这个测试出现了,让我变得愚蠢:

[TestMethod]
public void EquateTwoTuplesWithSameContent()
{
    var t1 = Tuple.Create("S");
    var t2 = Tuple.Create((object)t1.Item1);
    Assert.IsTrue(t1.Equals(t2)); // Boom!
}
Run Code Online (Sandbox Code Playgroud)

阅读MSDN文档和各种博客给我留下了更多问题.从我收集的内容来看,似乎Tuple<object>并且Tuple<TWhatever>总是被认为是不相等的,无论两个实例都可以包装相同的对象(盒装或类型转换 - 它们都是相同的).

这真的Tuples应该如何表现?结构兼容性实际上是对平等的另一个限制,而不是放松,因为我一直在解释它直到现在?

如果是这样,BCL中还有什么可以用来满足上述单元测试的期望吗?

先感谢您!

c# tuples equality

27
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×3

tuples ×2

.net ×1

.net-3.5 ×1

dictionary ×1

equality ×1

multimap ×1