多值字典

如何在C#中创建多值字典?

例如Dictionary<T,T,T>,第一个T是键,其他两个是值。

所以这是可能的: Dictionary<int,object,double>

谢谢

回答:

只需创建一个Pair<TFirst, TSecond>类型并将其用作您的值即可。

我在C#中的Depth源代码中有一个示例。为简单起见,此处转载:

using System;

using System.Collections.Generic;

public sealed class Pair<TFirst, TSecond>

: IEquatable<Pair<TFirst, TSecond>>

{

private readonly TFirst first;

private readonly TSecond second;

public Pair(TFirst first, TSecond second)

{

this.first = first;

this.second = second;

}

public TFirst First

{

get { return first; }

}

public TSecond Second

{

get { return second; }

}

public bool Equals(Pair<TFirst, TSecond> other)

{

if (other == null)

{

return false;

}

return EqualityComparer<TFirst>.Default.Equals(this.First, other.First) &&

EqualityComparer<TSecond>.Default.Equals(this.Second, other.Second);

}

public override bool Equals(object o)

{

return Equals(o as Pair<TFirst, TSecond>);

}

public override int GetHashCode()

{

return EqualityComparer<TFirst>.Default.GetHashCode(first) * 37 +

EqualityComparer<TSecond>.Default.GetHashCode(second);

}

}

以上是 多值字典 的全部内容, 来源链接: utcz.com/qa/406850.html

回到顶部