for和foreach的区别,什么时候用for 什么时候用foreach 以及foreach的应用 Thanks!
解决方案 »
- C#链接Oracle数据库以及tnsnames.ora文件的问题
- api函数createfile的问题
- socket Receive问题!
- 怎么样理解"抽像类"这个概念,大家能不能形像的说说!说都有分!
- SQL Server不存在或访问被拒绝!
- 求好的界面美化方法
- 关于C#调用C++动态库函数参数为联合问题
- B/S如何实现将指定Web服务器目录中的图像文件输出到Excel指定的单元格?
- 想用C#做一俄罗斯方块,谁有代码可以先参考一下?
- 如何滤出下面的字符串,思归兄在吗?
- WeifenLuo.WinFormsUI.Docking.dll 问题
- 高手快来!!已经研究几天,实在没办法了才发贴。关于c#全局键盘钩子
不明确循环次数 foreach
FOREACH是找遍历对象,一个对象一个对象的来.
{
do something;
}
doc.Load("addteam.xml");
XmlNodeList root = doc.SelectNodes("//new");
foreach (XmlElement item in root)
{
channelBoxLists.Items.Add(item.GetAttribute("name"));
}
{}
for 也能进行不确定次数查询
foreach (int item in datas)
{
Console.WriteLine(item.ToString());
}
//和下面是等效的
IEnumerator ed = datas.GetEnumerator();
while (ed.MoveNext())
{
Console.WriteLine(ed.Current.ToString());
}
//向集合str中添加元素
for(int i=0;i<10;i++)
{
str.add(i.ToString());
}
//输出str集合中的元素
foreach(string item in str)
{
response.write(item);
}
XmlDocument dc = new XmlDocument();
dc.Load("addteam.xml");
XmlNodeList list = dc.SelectNodes("//new");
foreach (XmlElement item in list)
{
TreeNode trnodes = new TreeNode(item.GetAttribute("name1"));
try
{
foreach (XmlElement temp in item.ChildNodes)
{
TreeNode node = new TreeNode(temp.GetAttribute("name"));
node.Tag = temp.GetAttribute("url");
trnodes.Nodes.Add(node);
} }
catch (Exception)
{ } treeView1.Nodes.Add(trnodes);
}
这里面的foreach语句不太知道,只知道是绑定
string str1="";
for(int i=0; i<strarray1.Lenght; i++)
{
str1=str1+strarray1[i];
}
MessageBox.Show(str1);
//---------------------------
str1="";
foreach(string str in strarray1)
{
str1=str1+str;
}
MessageBox.Show(str1);
/*上面显示的结果都是一样的。慢慢参详,就明白了。strarray1这个数组里面的包含的数据一定是string类型的。在举个例子*/
List<int> intList = new List<int>();
foreach(int tmp in intList)
{
//..........
}
List<string> strList = new List<string>();
foreach(string str in strList)
{
//..........
}
通俗的说
for一般遍历对象中的值 比如遍历一个数组foreach一般遍历对象集合中的对象 比如一个泛型中存了多个对象,foreach用于从泛型集合中遍历对象中的属性或方法
stuList.ADD(new student('张三','男'));//给集合添加元素
stuList.ADD(new student('李四','男'));
stuList.ADD(new student('王五','男'));
foreach(Student stu in stuList)//遍历集合中的每个元素
{
Console.WriteLine(stu);//输出集合中的每个元素
}
String[] sArr = new String[] {"one","two","three","four" };
foreach (String s in sArr)
Console.WriteLine(s);
// 语句
}注意:
1. “元素类型”必须和集合或数组中的元素类型相符。
2. 循环变量集合和数组中的元素。
3. 遍历过程中只能方法集合或数组中的元素,不能修改他们。
4. 使用时优先考虑使用foreach语句。 http://www.dingos.cn/index.php?topic=937.0
foreach (String s in sArr)
Console.WriteLine(s);
foreach( 类 对象 in 集合)
{}
对于在什么时候用,给个建议,当你知道循环的次数是时用for反之用foreach
{
double[] doubleArr = new double[10] { 1,2,3,4,5,6,7,8,9,10}; foreach (double data in doubleArr) //使用循环遍历
{
Response.Write(data.ToString());
} IEnumerator<double> enumber = (IEnumerator<double>)doubleArr.GetEnumerator(); //使用IEnumerator while (enumber.MoveNext())
{
Response.Write(enumber.Current.ToString());
}
{
double[] doubleArr = new double[10] { 1,2,3,4,5,6,7,8,9,10}; foreach (double data in doubleArr) //使用循环遍历
{
Response.Write(data.ToString());
} IEnumerator<double> enumber = (IEnumerator<double>)doubleArr.GetEnumerator(); //使用IEnumerator
while (enumber.MoveNext())
{
Response.Write(enumber.Current.ToString());
}