KeyValuePair构造函数的类型推断 - 已经在.NET中?

时间:2012-09-01 13:38:02

标签: c#

我目前正在使用......

public static class KeyValuePairFactory {
    public static KeyValuePair<TKey, TValue> Create<TKey, TValue>(
        TKey key,
        TValue value
    ) {
        return new KeyValuePair<TKey, TValue>(key, value);
    }
}

...而不是......

var pair = new KeyValuePair<MyVeryUnwieldyType1, MyVeryUnwieldyType2>(
    new MyVeryUnwieldyType1(),
    new MyVeryUnwieldyType2()
);

...我可以避免重复类型而且只是:

var pair = KeyValuePairFactory.Create(
    new MyVeryUnwieldyType1(),
    new MyVeryUnwieldyType2()
);

我是重新发明轮子并重新实现.NET Framework中已有的东西吗?

1 个答案:

答案 0 :(得分:1)

嗯,这取决于你是否肯定想要KeyValuePair。我不知道KeyValuePair有什么内容,但 存在于Tuple,通过Tuple.Create

Tuple<int, int> foo = Tuple.Create(10, 20);

就个人而言,我很少发现自己直接创建 KeyValuePair值 - 我发现在Dictionary<,>上使用LINQ to Objects时,更常见的是使用它们。