foreach是什么执行流程呢?该怎么处理
foreach是什么执行流程呢?
我用两个foreach遍历一个数据表的行和列,将这个表的一列拆分成两列,放入一个新表,为什么执行的时候,提示新表的列已存在。但是看流程,只是增加了一次啊!请高手帮忙啊!
而且,我只在表中取出一列,没有夺取,怎么会执行两次呢?是有多行问题造成的吗?怎么解决呢?
------解决方案--------------------
foreach 是循环。。。
把增加列的语句拿出foreach
------解决方案--------------------
这个循环foreach (DataColumn myDC in myDTC[0].Columns)
里面有
DataColumn myNewDC1 = myNewTable.Columns.Add(myValue + "minValue".ToString(),
就不对。
你反复添加列了。
------解决方案--------------------
用字典吧 不懂。。。
------解决方案--------------------
foreach就是一条一条遍历啊 类似for循环,只是不像for循环那样可以看到变量的变化
我用两个foreach遍历一个数据表的行和列,将这个表的一列拆分成两列,放入一个新表,为什么执行的时候,提示新表的列已存在。但是看流程,只是增加了一次啊!请高手帮忙啊!
而且,我只在表中取出一列,没有夺取,怎么会执行两次呢?是有多行问题造成的吗?怎么解决呢?
- C# code
DataTable myNewTable = new DataTable(); foreach (DataRow myDR in myDTC[0].Rows) { DataRow myNewDR=myNewTable.NewRow(); foreach (DataColumn myDC in myDTC[0].Columns) { String myValue = myDC.ColumnName.ToString().Trim(); String minValue,maxValue; // //对数量进行判断,并拆分为最大值和最小值(自定义类实现,这里没有问题) // if (myDR[myDC] != DBNull.Value && myDR[myDC].ToString() != "") { String test = myDR[myDC].ToString().Trim(); SpecialCharExist mySCE = new SpecialCharExist(); List<String> myCompositionList = new List<string>(); bool flagRC = mySCE.whetherRelationCharExist(test, out myCompositionList); if (flagRC == true) { string[] myCompositionResult = myCompositionList.ToArray(); minValue = myCompositionResult[0]; maxValue = myCompositionResult[1]; } else { minValue = test; maxValue = test; } } else { minValue = "0"; maxValue = "0"; } // //对新表增加列并进行赋值,赋给其最小值与最大值,问题可能出现在这里,但是我找不到啦! // DataColumn myNewDC1 = myNewTable.Columns.Add(myValue + "minValue".ToString(), typeof(double)); myNewDR[myValue + "minValue"] = Convert.ToDouble(minValue); DataColumn myNewDC2 = myNewTable.Columns.Add(myValue + "maxValue".ToString(), typeof(double)); myNewDR[myValue + "maxValue"] = Convert.ToDouble(maxValue); /* myNewTable.Columns.Add(myValue+"minValue",typeof(double)); myNewTable.Columns.Add(myValue+"maxValue",typeof(double)); myNewDR[myElement + "minValue"] = Convert.ToDouble(minValue); myNewDR[myElement + "maxValue"] = Convert.ToDouble(maxValue); */ } myNewTable.Rows.Add(myNewDR); MessageBox.Show(myNewTable.Rows[0][0].ToString()); }
------解决方案--------------------
foreach 是循环。。。
把增加列的语句拿出foreach
------解决方案--------------------
这个循环foreach (DataColumn myDC in myDTC[0].Columns)
里面有
DataColumn myNewDC1 = myNewTable.Columns.Add(myValue + "minValue".ToString(),
就不对。
你反复添加列了。
------解决方案--------------------
用字典吧 不懂。。。
------解决方案--------------------
foreach就是一条一条遍历啊 类似for循环,只是不像for循环那样可以看到变量的变化