欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#中遍历各类数据集合的方法总结

程序员文章站 2024-03-01 10:11:34
c#中遍历各类数据集合的方法,这里自己做下总结: 1.枚举类型 复制代码 代码如下: //遍历枚举类型sample的各个枚举名称 foreach (string sp in...
c#中遍历各类数据集合的方法,这里自己做下总结:
1.枚举类型
复制代码 代码如下:

//遍历枚举类型sample的各个枚举名称
foreach (string sp in enum.getnames(typeof(sample)))
{
ary.add(sp);
}
//遍历枚举类型sample的各个枚举值
foreach (string sp in enum.getvalues(typeof(sample)))
{
ary.add(sp);
}

2.遍历arraylist(queue、stack)
这里以string为例,当然arraylist中的元素可以是任何数据类型,遍历时须确认arraylist中的元素都是同一数据类型。
复制代码 代码如下:

//遍历元素为string类型的队列
foreach (string text in arraylist)
{
ary.add(text);
}

此外遍历queue队列和stack堆栈的方式与arraylist基本相同, 都可以使用foreach来循环遍历,只不过一个是先进先出另一个是先进后出罢了。
3.winform窗体中的控件
复制代码 代码如下:

//遍历寻找主窗体中的控件,并将符合条件的控件从窗体上去除
foreach (control ctl in this.controls)
{
//获取并判断控件类型或控件名称
if (ctl.gettype().name.equals("listbox") || ctl.name.equals("listbox1"))
this.controls.remove(ctl);
}

4.hashtable哈希表
dictionaryentry类需要引用system.collections
复制代码 代码如下:

//遍历完整哈希表中的键和值
foreach (dictionaryentry item in hashtable)
{
ary.add("哈希键:"+item.key+",哈希值:"+item.value.tostring());
}
此外还可以单独遍历哈希表中的键或值。
//只遍历哈希表中的键
foreach (string key in hashtable.keys)
{
ary.add("哈希键:" + key);
}
//只遍历哈希表中的值
foreach (string value in hashtable.values)
{
ary.add("哈希值:" + value);
}

5.遍历dataset和datatable中的行和列
复制代码 代码如下:

//遍历dataset中的表
foreach (datatable dt in dataset.tables)
{
ary.add("表名:" + dt.tablename.tostring());
}
//遍历dataset中默认第一个表中的行
foreach (datarow dr in dataset.tables[0].rows)
{
//获取行中某个字段(列)的数据
ary.add(dr["id"].tostring());
}
//遍历dataset中默认第一个表中的列
foreach (datacolumn col in dataset.tables[0].columns)
{
ary.add("列名:"+col.columnname);
}

datatable遍历行和列的方法和dataset类似,只是将dataset.tables[0]换成具体某张表就可以了。
另外还可以对datatable表进行sql查询,然后再对查询结果进行遍历。
复制代码 代码如下:

//遍历dataset中表select执行查询条件后的结果
foreach (datarow dr in dataset.tables[0].select(" month>6 and month<12 "))
{
//获取行中某个字段(列)的数据
ary.add(dr["id"].tostring());
}

6.遍历datagridview中的行
复制代码 代码如下:

//遍历datagridview中的行
foreach (datagridviewrow dr in datagridview1.rows)
{
//获取行中某个字段(列)的数据
ary.add(dr.cells["id"].tostring());
}

7.遍历listbox和combobox中的item
一般foreach遍历只能遍历到listbox和combobox里item的名称,完整遍历需要在绑定item的时候添加的item数据是个二元属性自定义类的对象,将对象中一个属性的名称作为displaymember(item名),另一个作为displayvalue(item值)。这样在遍历的时候就可以把listbox和combobox中的item的名称和值全部获取出来了。