|
|
|
@ -14,6 +14,183 @@ namespace TupleStudy
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class ValueTupleStudy
|
|
|
|
|
{
|
|
|
|
|
#region 构造函数 创建值元组
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建0元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple CreateValueTuple()
|
|
|
|
|
{
|
|
|
|
|
var tuple = new ValueTuple();
|
|
|
|
|
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建1元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1> CreateValueTuple<T1>(T1 value)
|
|
|
|
|
{
|
|
|
|
|
var tuple = new ValueTuple<T1>(value);
|
|
|
|
|
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建2元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1,T2> CreateValueTuple<T1,T2>(T1 value1, T2 value2)
|
|
|
|
|
{
|
|
|
|
|
var tuple = new ValueTuple<T1, T2>(value1, value2);
|
|
|
|
|
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建3元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1, T2, T3> CreateValueTuple<T1, T2, T3>(T1 value1, T2 value2, T3 value3)
|
|
|
|
|
{
|
|
|
|
|
var tuple = new ValueTuple<T1, T2, T3>(value1, value2, value3);
|
|
|
|
|
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建4元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1, T2, T3, T4> CreateValueTuple<T1, T2, T3, T4>(T1 value1, T2 value2, T3 value3, T4 value4)
|
|
|
|
|
{
|
|
|
|
|
var tuple = new ValueTuple<T1, T2, T3, T4>(value1, value2, value3, value4);
|
|
|
|
|
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建5元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1, T2, T3, T4, T5> CreateValueTuple<T1, T2, T3, T4, T5>(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5)
|
|
|
|
|
{
|
|
|
|
|
var tuple = new ValueTuple<T1, T2, T3, T4, T5>(value1, value2, value3, value4, value5);
|
|
|
|
|
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建6元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1, T2, T3, T4, T5, T6> CreateValueTuple<T1, T2, T3, T4, T5, T6>(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6)
|
|
|
|
|
{
|
|
|
|
|
var tuple = new ValueTuple<T1, T2, T3, T4, T5, T6>(value1, value2, value3, value4, value5, value6);
|
|
|
|
|
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建7元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1, T2, T3, T4, T5, T6, T7> CreateValueTuple<T1, T2, T3, T4,T5,T6,T7>(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7)
|
|
|
|
|
{
|
|
|
|
|
var tuple = new ValueTuple<T1, T2, T3, T4, T5, T6, T7>(value1, value2, value3, value4, value5, value6, value7);
|
|
|
|
|
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建8元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest> CreateValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, TRest restValue) where TRest : struct
|
|
|
|
|
{
|
|
|
|
|
var tuple = new ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>(value1, value2, value3, value4, value5, value6, value7, restValue);
|
|
|
|
|
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 静态Create方法 创建值元组
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建0元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple GetValueTuple()
|
|
|
|
|
{
|
|
|
|
|
var tuple = ValueTuple.Create();
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建1元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1> GetValueTuple<T1>(T1 item1)
|
|
|
|
|
{
|
|
|
|
|
var tuple = ValueTuple.Create(item1);
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建2元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1, T2> GetValueTuple<T1, T2>(T1 item1, T2 item2)
|
|
|
|
|
{
|
|
|
|
|
var tuple = ValueTuple.Create(item1, item2);
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建3元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1, T2, T3> GetValueTuple<T1, T2, T3>(T1 item1, T2 item2, T3 item3)
|
|
|
|
|
{
|
|
|
|
|
var tuple = ValueTuple.Create(item1, item2, item3);
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建4元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1, T2, T3, T4> GetValueTuple<T1, T2, T3, T4>(T1 item1, T2 item2, T3 item3, T4 item4)
|
|
|
|
|
{
|
|
|
|
|
var tuple = ValueTuple.Create(item1, item2, item3, item4);
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建5元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1, T2, T3, T4, T5> GetValueTuple<T1, T2, T3, T4, T5>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5)
|
|
|
|
|
{
|
|
|
|
|
var tuple = ValueTuple.Create(item1, item2, item3, item4, item5);
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建6元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1, T2, T3, T4, T5, T6> GetValueTuple<T1, T2, T3, T4, T5, T6>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6)
|
|
|
|
|
{
|
|
|
|
|
var tuple = ValueTuple.Create(item1, item2, item3, item4, item5, item6);
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建7元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1, T2, T3, T4, T5, T6, T7> GetValueTuple<T1, T2, T3, T4, T5, T6, T7>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7)
|
|
|
|
|
{
|
|
|
|
|
var tuple = ValueTuple.Create(item1, item2, item3, item4, item5, item6, item7);
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建8元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public (T1, T2, T3, T4, T5, T6, T7, TRest) GetValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, TRest item8) where TRest:struct
|
|
|
|
|
{
|
|
|
|
|
var tuple = ValueTuple.Create(item1, item2, item3, item4, item5, item6, item7, item8);
|
|
|
|
|
return tuple;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|