我正在寻找C#(2)中的通用双向1到1字典类,即.a BiDictionaryOneToOne<T, S>保证只包含每个值和键中的一个(无论如何最多为RefEquals),并且可以使用键或值进行搜索.有人知道,或者我应该自己实施吗?我不敢相信我是第一个需要这个的人......
在这个问题的答案中有一个BiDictionary ,但它不适用于唯一元素(并且也不实现RemoveByFirst(T t)或RemoveBySecond(S s)).
谢谢!
我想通过这个例子会更清楚。我们希望在处理器类中看到两个具有不同参数的方法。“ int处理(int值);” “双重处理(双重价值);”
但是编译器对IRoot说:'Generics.IRoot'不能同时实现'Generics.IProcess'和'Generics.IProcess',因为它们可能会为某些类型参数替换统一。
public class Processor : IRoot<int, double, int, double>
{
// Here we want 2 methods
public int Process(int item) { }
public double Process(double item) { }
}
public interface IProcess<TResult, TItem>
{
TResult Process(TItem item);
}
public interface IRoot<TR1, TR2, TItem1, TItem2> :
IProcess<TR1, TItem1>,
IProcess<TR2, TItem2>
{
}
Run Code Online (Sandbox Code Playgroud)