LINQ 泛型集合怎么像 datatable 那样追加字段?

LINQ 泛型集合怎么像 datatable 那样追加字段?,第1张

用合并集合的方式

假设你原本有一个类

class Class1{

int ID{getset}

string Text{getset}

....

}

这个类的集合:List<Class1>c1 = new List<Class1>()

为这个集合添加属性Value,先再创建一个类,并具有Value属性

class Class2{

int ID{getset}

string Value{getset}

}

创建这个类的集合:List<Class2>c2 = new List<Class2>()

合并两个集合:

var q = from o1 in c1 join o2 in c2 on o1.ID equals o2.ID select new { o1.ID, o1.Text, o2.Value }

1、类型,就是用来描述数据在计算机里“存储的格式”。例如,5与“5”,对人来说是一码事,对计算机来说就是两码事,因为它们储存在计算机里面的“格式”不一样。因为C#是一种强类型语言,你得在使用数据前,明确告诉C#这些数据的“格式”,也就是类型。

2、简单点、不是很全面地来解释范型,范型犹如一个“容器”类,用来装载一些“已知的基本类型”的类,这些被装载的基本类,是明确的、简单的、基本类型的类。

3、例如,一个范型集合类,里面可以“装载”一些已明确为string类型的类,那就是List<string>;反之,如果“装载”着没有明确类型的类,比如List<Object>,语义没问题,用起来也差别不大,但那就不是范型了!

4、范型“装载”着已明确类型的类,所以主要两个好处:

一是,可以更容易实现类型安全,减少各种程序错误。例如,你不经意间为List<string>增加一个int类型元素时,程序就会尽职地报错,而List<Object>就不会报错了,增加了产生未知错误的几率。

二是,大家知道集合啊,数组啊,都是引用类型,如果它们“装载”值类型的类时,可能会产生装箱与拆箱 *** 作(可以理解为值类型与引用类型互转),而范型能避免这个 *** 作所带来的性能损失,记住哦,频繁地装箱与拆箱 *** 作,会带来比较严重的性能问题滴。

String seatname="set"+i+""+j

Seat seat

seat= new Seat(Seatsname, "green", 0)

seats.Add(seat.SeatName, seat)

改成 String seatname="set"+i+""+j

seats.Add(SeatName, new Seat(Seatname, "green", 0))

对啦,seat= new Seat(Seatsname, "green", 0)中Seatsname应该是笔误吧,我修改为Seatname


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/bake/11953425.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存