list浅析
1.list会不上线的增加,增加硬件内存,需要剔除数据:
Listerf = new List {1,2,3,4,5 }; if (erf.Count>3) { erf.RemoveAt(0);
//erf.RemoveRange(0,2); }
2.remove不能移除类或者数组等格式数据,否则会报错false、
static ListcANMessageAlls = new List ();
public class ZLGCANMessage { ////// CANID /// public uint CANID { get; set; } /// /// CAN长度 /// public byte lenData { get; set; } /// /// CAN周期 /// public int period { get; set; } /// /// CAN发送类型,0正常,1单词,2自发自收,3单次自发自收,默认固定0 /// public byte sendType { get; set; } /// /// 0:data frame数据帧,1:remote frame远程帧 /// public byte remoteFlag { get; set; } /// /// type帧类型,0:standard frame标准帧,1:extend frame扩展帧 /// public byte externFlag { get; set; } /// /// 数据 /// public byte[] Data { get; set; } public string DataString { get; set; } /// /// CAN发送协议,0CAN,1CANFD /// public byte protocol { get; set; } /// /// CANFD是否加速,0不加速,1加速 /// public byte CANFDExp { get; set; } }
直接remove一样的类类型会false:cANMessageAlls.Remove(cANMessage);
原因是remove中是泛型T item
需要具体定义一下移除数据:
var whereRemove = cANMessageAlls.FirstOrDefault(t=>t.DataString== canMessage.DataString /*t => t.CANID == canMessage.CANID*/);
cANMessageAlls.Remove(whereRemove);
注意,如果其中的t定义的不是string类型,而是date数组这个参数时候,var为空