C# 结构体列表的使用

目录

    • 引言
      • 1、结构体定义
      • 2、结构体列表初始化
      • 3、结构体列表赋值
      • 4、结构体列表遍历
      • 5、结构体列表删除
      • 6、结构体列表全清除
      • 7、结构体列表排序


引言

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


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);
  });

你可能感兴趣的:(C#,c#)