黑马程序员技术交流社区

标题: 关于foreach的问题 [打印本页]

作者: 王连    时间: 2012-4-19 08:54
标题: 关于foreach的问题
string[] lines = txtDuohang.Lines;
            string maxName = "";
            int maxScore = -1;
            foreach (string line in lines)
            {
                string[] str = line.Split('=');
                string name = str[0];
                int score = Convert.ToInt32(str[1]);
                if (score > maxScore)
                {
                    maxName = name;
                    maxScore = score;
                }
            }
            MessageBox.Show(string.Format("{0}是第一名,成绩是{1}",maxName,maxScore));

谁能帮我解释下这个foreach (string line in lines)这句话是什么意思,怎么用的?还有后面的那个string.Format的意思和用法,我查了下百度,里面的解释太多了,看着头都大了!谢谢了
作者: 李宗鹏    时间: 2012-4-19 09:06
本帖最后由 李宗鹏 于 2012-4-20 01:22 编辑

string line in lines可以看成line从lines数组里边遍历!string.Format
可以返回含有占位符的字符串
foreach可以遍历所有实现了IEnumerator接口的对象 foreach能做到的for并不一定能做到
而只要把此类实现IEnumerator接口 foreach就能循环它

作者: 孙杰    时间: 2012-4-19 09:08
就相当于一个for循环  lines的个数
作者: z4226797    时间: 2012-4-19 09:24
foreach (string line in lines)依次执行lines数组中的元素,并把值赋给line
string.Format有点类似于WriteLine,可以使用占位符进行输出
作者: 周俊辉    时间: 2012-4-19 09:43
谁能帮我解释下这个foreach (string line in lines)这句话是什么意思,怎么用的?还有后面的那个string.Format的意思和用法,我查了下百度,里面的解释太多了,看着头都大了!谢谢了

//----------------------
  foreach就相当于 遍历lines数组里的元素。  就是这样用的  实例已经说的很明白了 也不知道怎么告诉你怎么用的


string.Format 指定字符串中的每个格式项替换为相应对象的值的等效文本   不知道这样解释你能明白??
作者: 403692154    时间: 2012-4-19 09:46
line是lines中的值,遍历的是数组中的值
作者: 鲍晨    时间: 2012-4-19 09:56
foreach是依次遍历数组中的元素,区别于for循环,foreach的执行效率更高,且只能从前往后遍历,string.Format是格式化输出字符串




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2