Revit二次开发,tuple,valuetuple,anonymousType匿名类型的区别,笔记记录
Tuple<int, string> tuple = new Tuple<int, string>(1, "hello");//tuple
ValueTuple<int, string> valueTuple = (1, "hello");//valuetuple
(string tile1, int Grad1) valueTuple1 = (tile1: "A", Grad1: 0);//valuetuple,指定值名称,帮助提示
性能: ValueTuple 的性能通常比 Tuple 更好,特别是在创建大量元组时。
语法: 使用 ValueTuple 可以更简洁地创建元组,而不需要显式地调用构造函数。
Mutable: 在 ValueTuple 中,元组的元素是只读的,而在 Tuple 中元组的元素是可读写的。
引用类型: Tuple 是一个类,因此它的实例是引用类型,而 ValueTuple 是一个结构,它的实例是值类型。
//匿名类型
var anonymousObject = new { tile1= "A", Grad1= 0};
//以上匿名类型,相当于新建了用了一个类
class Anonymous{
string tile{get;set;}
int Grad1 {get;set;}
}
var anonymousObject1 = new Anonymous{ tile1= "A", Grad1= 0};
举个写入Json例子
var MechanicalTypeAndDatas = new List<dynamic>
{
new {tile ="A", dd=new {tile1= "A",Grad1=0 } },
new {tile= "B",dd= new {tile2= "B",Grad2=1 } },
new {tile= "C",dd=new {tile3= "C",Grad3=2} },
};
Tuple,ValueTuple,写入Json,其默认的属性名称都是用Item表示
以上类型可以根据需求自行选择吧。