日期:2014-05-17  浏览次数:20848 次

foreach 循环读取数据,逐一返回的问题。帮忙看下,脑袋短路了

public string msgUsers(string url)
{
  string username = string.Empty;
  foreach (Match match in trmatches)
  {
    try
    {
      string names = xxxxxxx;
      username = names;
      Messagebox.show(username);//这里逐条显示。
      //如果是username += names;显示结果为:第一条第二条第三条第四条这样叠加了
     }
    catch
    {
     
     }
    return username;//这里指返回一条数据怎么回事?
   }

------解决方案--------------------
看这代码,不管如何,它就返回xxxxxxx
------解决方案--------------------
return 语句挪到 foreach 语句块外面
------解决方案--------------------
return表示msgUsers这个方法都结束的,当然只返回一条数据了

把return放到foreach外面的
------解决方案--------------------
你在foreach里面return,自然只能返回第一条了
------解决方案--------------------
你想返回什么呢,你这个return放到foreach里面了,所以只返回第一条,但是如果你搬到foreach外面,就肯定返回最后一条了,要看你的需求是什么,才能决定你代码怎么修改
------解决方案--------------------
public List<string> msgUsers(string url)
{
  List<string> username = new List<string>();
  foreach (Match match in trmatches)
  {
    try
    {
      string names = xxxxxxx;
      username = names;
      Messagebox.show(username);//这里逐条显示。
      username.Add(names);
     }
    catch
    {
      
     }
    }
    return username;//这里指返回一条数据怎么回事?
}