有没有办法缩短这个变量定义?

时间:2016-02-02 18:54:45

标签: c# dictionary

我目前有这种减速方式:

var myDictionary = new Dictionary<string, List<Tuple<string, DateTime>>>();

问题是输入时间过长:

public static Dictionary<string, List<Tuple<string, DateTime>>> getDictionaryDifferences(Dictionary<string, List<Tuple<string, DateTime>>> d1, Dictionary<string, List<Tuple<string, DateTime>>> d2)

如何将此类型或类型设置为需要定义构造函数的类?我怎么能缩短这种表示法?

3 个答案:

答案 0 :(得分:4)

另一个选项是文件顶部的using alias directive

using SpecialDictionary = Dictionary<string, List<Tuple<string, DateTime>>>;

然后你可以做

var dictionary = new SpecialDictionary();

public static SpecialDictionary getDictionaryDifferences(
    SpecialDictionary d1, 
    SpecialDictionary d2)

答案 1 :(得分:2)

这样的事情怎么样?

public class MyClass : Dictionary<string, List<Tuple<string, DateTime>>>
{}

然后:

var myDictionary = new MyClass();

public static MyClass getDictionaryDifferences(MyClass d1, MyClass d2)

答案 2 :(得分:1)

如果你没有太多“绑定”单个元组的结构,你可以使用泛型并使你的方法适用于其他类型的列表的字典:

public static Dictionary<K,List<V>> GetDictionaryDifferences<K,V>(
    IDictionary<K,List<V>> d1
,   IDictionary<K,List<V>> d2
) {
    ...
}

这可以让你实现一次算法,而不需要字典键成为字符串,并且不知道V是某种Tuple<,>