C# 结构体列表的使用


引言

  我们在使用大量相同的结构体的时候,就可以使用结构体列表来实现是十分不错的选择,也就是我们说的List <struct>。我简要小结一下其使用方法。


1、结构体定义

  结构体定义如下。

struct NR_BCH_PROP
{
    public long arfcn;
    public long center_freq;
}

2、结构体列表初始化

  通过类型后面的<>来表示这个列表存储的数据的类型。
  也可以直接赋值初值来使用,稍微复杂。

	//创建了一个空的列表 
	public List<NR_BCH_PROP> nrList = new List<NR_BCH_PROP>();
	
	//创建了一个有值列表
	public  List<NR_BCH_PROP> list1 = new List<NR_BCH_PROP>() { 
		new NR_BCH_PROP(   250 ,   1250000 ),
        new NR_BCH_PROP(   270 ,   1350000 ) 
        };

3、结构体列表赋值

  通过new struct() 初始化数据接头的类型的一个对象 _NR_BCH_PROP
  赋值后,通过 nrList.Add(_NR_BCH_PROP) 添加列表内容,如果有内容就会在最后的位置添加。


	//结构体实例化
	NR_BCH_PROP _NR_BCH_PROP = new NR_BCH_PROP();
	//结构体对象赋值
	_NR_BCH_PROP.center_freq =   1200000 + 50000;
	_NR_BCH_PROP.arfcn = _NR_BCH_PROP.center_freq / 5000;   
  
	//在最后位置添加一个结构体
	nrList.Add(_NR_BCH_PROP); 

4、结构体列表遍历

  遍历的方法和普通列表一样靠索引定位。

//获取所有值
for(int i = 0;i < nrList.Count();i++)
{
    //申请临时对象
    NR_BCH_PROP _temp_value = new NR_BCH_PROP();
	//获取值
	_temp_value.center_freq = nrList[i].center_freq;
	_temp_value.arfcn= nrList[i].arfcn;
}

5、结构体列表删除

  要注意清除前要确认是否小于总列表数量。
  删除后也同样要注意,删除的是中间的值,列表不会流空,并刷新索引。

int i=0;
if(i < nrList.Count())
{
	nrList.RemoveAt(i);
}

6、结构体列表全清除

  全删除可以不用遍历的方法,可以使用列表的Clear()方法一次性清除更加简单。

nrList.Clear();

7、结构体列表排序

  如果需要排序可以通过Sort()方法加上委托迅速实现排序,下面的示例就是将nrList中的center_freq值按顺序从小到大排序。

  nrList.Sort(delegate (NR_BCH_PROP p1, NR_BCH_PROP p2)
  {
        return p1.center_freq.CompareTo(p2.center_freq);
  });
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火星papa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值