面向对象的思想所在(用现实中的方法去思考和编程)
/// <summary>
/// 比较两个集合中的交集元素(篮子挑鸡蛋为例,挑出不是交集的鸡蛋放到第三个篮子里)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
//数据集(第一篮子)
DataTable dt1 = new DataTable();
dt1.Columns.Add(new DataColumn("name",typeof(string)));
DataRow dr = null;
for (int i = 0; i < 5; i++)
{
dr = dt1.NewRow();
dr[0] = "zw" + i.ToString();
dt1.Rows.Add(dr);
}
//过滤集合(第二个篮子)
string[] strNames = new string[] { "qq","tt","zw1"};
//存放挑选出来的鸡蛋
DataTable dtFinal = dt1.Clone();
bool bExits;//定义存在标志
foreach (DataRow row in dt1.Rows)//每次从第一个篮子拿出一个和第二个篮子中所有的鸡蛋进行比对
{
bExits = false;
foreach (string str in strNames)
{
if (row[0].ToString() == str)
{
Response.Write(row[0].ToString() + "<br/>------------<br/>");
bExits = true;
break;
}
}
if (!bExits)//比较下来不存在就到第三个篮子里
{
DataRow newRow = dtFinal.NewRow();
newRow[0] = row[0];
dtFinal.Rows.Add(newRow);
}
}
//遍历第三个篮子
foreach (DataRow row in dtFinal.Rows)
{
Response.Write(row[0].ToString()+"<br>");
}
}
输出结果:
zw1
------------
zw0
zw2
zw3
zw4