中易网

编写一个程序,使用foreach遍历DataTable

答案:2  悬赏:80  
解决时间 2021-02-16 13:06
请编写一个小程序,使用foreach遍历一个DataTable,DataTable中有姓名、年龄、性别等字段,删除年龄小于18岁且性别为男性的记录。

public void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
。。。。。
this.dataGridView1.DataSource = dt;
}
public void button1_Click(object sender, EventArgs e)
{
Hashtable ht = new Hashtable();
foreach (DataRow r in dt.Rows)
{
if (Convert.ToInt32(r["age"]) < 18 && r["sex"].ToString().ToLower() == "male")
ht.Add(r["Id"], r["Name"]);
}
foreach (DictionaryEntry a in ht)
{
DataRow row = dt.Rows.Find(a.Key);
if (row != null)
dt.Rows.Remove(row);
}
}
用按钮的形式做~按钮这边怎么读取上面的datagridview的数据?
最佳答案
datarow[] datarow = DataTable.Select("age < 18 and sex = 'male'")
全部回答
错误提示"集合已修改"已经很明确的说明原因了啊~ 因为foreach正在遍历dt,而这个时候你又删掉一行,此时dt就要刷新,foreach就无法获取dt的最新值了... 所以,你要删除只能先保存删除行的值...当跳出foreach后再一起删除.
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
汤家冲我想知道这个在什么地方
泰州房价怎么样?
今世缘·国缘(黄桥专卖店)这个地址在什么地方
三星s7edgeg935t是有锁机嘛
厦门市一中,双十中考录取分数线是多少
东汉时期中东是什么文明社会
九鼎装饰公司到底好不好
我不小心把朋友的乒乓球踩破了他说不让我赔,
宏伟家电在哪里啊,我有事要去这个地方
wow猎人误导宏
盆洞村怎么去啊,我要去那办事
1981年农历10月13曰阳历是多少号?
大曹庄中大街/沟东胡同(路口)在什么地方啊,
有没有人知道html+css中高级表格是什么
NBA2K12 秘籍
推荐资讯
新倩女幽魂狡兔三窟怎么学
跪求五月天出头天演唱会上穿的那件蓝白条纹的
慈溪市坎墩镇开发幼儿园地址在什么地方,我要
假牙是什么材料做成的?
石岩有没有外地车牌限行路段吗?
我买了个面盆柜,面盆上是四孔(两个水龙头开
公式拆分,求详细过程
临朐县五井镇下五井西村村民委员会地址在哪,
扶贫工作的重点应放在哪?
档案系统个人学习追赶超越心得体会
虽然我与他素不相识,但是这个人——一个卖艺
如何把雨伞废物利用
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?