|
|
|
@ -2,6 +2,8 @@
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
|
|
|
|
|
namespace TupleStudy
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
@ -39,7 +41,7 @@ namespace TupleStudy
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建2元素的值元组
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ValueTuple<T1,T2> CreateValueTuple<T1,T2>(T1 value1, T2 value2)
|
|
|
|
|
public ValueTuple<T1, T2> CreateValueTuple<T1, T2>(T1 value1, T2 value2)
|
|
|
|
|
{
|
|
|
|
|
var tuple = new ValueTuple<T1, T2>(value1, value2);
|
|
|
|
|
|
|
|
|
@ -89,7 +91,7 @@ namespace TupleStudy
|
|
|
|
|
/// <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)
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
@ -184,7 +186,7 @@ namespace TupleStudy
|
|
|
|
|
/// <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
|
|
|
|
|
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;
|
|
|
|
@ -204,7 +206,7 @@ namespace TupleStudy
|
|
|
|
|
//回为函数返回值已经重命名,创建时再次命名已没有意义
|
|
|
|
|
//return (userId: 1, userName: "wanggaofeng", userAge: 18);
|
|
|
|
|
|
|
|
|
|
return (1, "王高峰",18);
|
|
|
|
|
return (1, "王高峰", 18);
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
@ -254,5 +256,31 @@ namespace TupleStudy
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 序列化问题
|
|
|
|
|
public string GetValueTupleJson()
|
|
|
|
|
{
|
|
|
|
|
var student = (userId: 1, userName: "wanggaofeng", userAge: 18);
|
|
|
|
|
var json = JsonConvert.SerializeObject(student);
|
|
|
|
|
return json;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 解决方法:转换成匿名类
|
|
|
|
|
/// 不太优雅的方案,目前只能如此。
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string GetValueTupleJsonSolve()
|
|
|
|
|
{
|
|
|
|
|
var student = (userId: 1, userName: "wanggaofeng", userAge: 18);
|
|
|
|
|
var anonymous = new
|
|
|
|
|
{
|
|
|
|
|
userId = student.userId,
|
|
|
|
|
userName = student.userName,
|
|
|
|
|
userAge = student.userAge,
|
|
|
|
|
};
|
|
|
|
|
var json = JsonConvert.SerializeObject(anonymous);
|
|
|
|
|
return json;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|