替代元组

Ulh*_*ano 3 asp.net

因为.net framework 4.0支持Tuples.Tuple Class在3.5中不可用但是有什么方法可以在.net 3.5中创建我自己的类MyTuple吗?

Ste*_*ven 6

是.您可以创建自己的元组.这没什么难的.这是一个带有Tuple<T1, T2>和的例子Tuple<T1, T2, T3>.

public class Tuple<T1, T2>
{
    public Tuple(T1 item1, T2 item2)
    {
        this.Item1 = item1;
        this.Item2 = item2;
    }

    public T1 Item1 { get; private set; }

    public T2 Item2 { get; private set; }
}

public class Tuple<T1, T2, T3>
{
    public Tuple(T1 item1, T2 item2, T3 item3)
    {
        this.Item1 = item1;
        this.Item2 = item2;
       this.Item3 = item3;
    }

    public T1 Item1 { get; private set; }

    public T2 Item2 { get; private set; }

    public T3 Item3 { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

这是用于创建Tuple实例的静态工厂类:

public static class Tuple
{
    public static Tuple<T1, T2> Create<T1, T2>(
        T1 item1, T2 item2)
    {
        return new Tuple<T1, T2>(item1, item2);
    }

    public static Tuple<T1, T2, T3> Create<T1, T2, T3>(
        T1 item1, T2 item2, T3 item3)
    {
        return new Tuple<T1, T2, T3>(item1, item2, item3);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在您可以编写以下内容:

var myTuple = Tuple.Create(4, "oh yes baby");
Run Code Online (Sandbox Code Playgroud)

干杯