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

mianrong 2014-01-14 02:50:12

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;//这里指返回一条数据怎么回事?
}
...全文
224 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
友君快乐 2014-01-14
  • 打赏
  • 举报
回复

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;
}
threenewbee 2014-01-14
  • 打赏
  • 举报
回复
private void button4_Click(object sender, EventArgs e) { string Str1 = webForm.msgUsers("http://127.0.0.1/member.php")[0]; MessageBox.Show(Str1); } 或者 foreach (string Str1 in webForm.msgUsers("http://127.0.0.1/member.php")) { MessageBox.Show(Str1); }
mianrong 2014-01-14
  • 打赏
  • 举报
回复
引用 7 楼 caozhy 的回复:
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;//这里指返回一条数据怎么回事? }
错误 1 无法将类型“System.Collections.Generic.List<string>”隐式转换为“string”

        private void button4_Click(object sender, EventArgs e)
        {
            string Str1 = webForm.msgUsers("http://127.0.0.1/member.php");
            MessageBox.Show(Str1);
        }
threenewbee 2014-01-14
  • 打赏
  • 举报
回复
就是“逐个返回”的意思。
zyz910629 2014-01-14
  • 打赏
  • 举报
回复
引用 9 楼 caozhy 的回复:
如果你希望“逐一返回”,你应该用yield return而不是return,看代码: 主程序:
foreach (string user in GetUsers())
{
    MessageBox.Show(user);
}
函数:
IEnumerable<string> GetUsers()
{
    string s = "a;b;c;d;e";
    foreach (string user in s.Split(';'))
    {
        yield return user;
    }
}
这个yield是什么意思?
zyz910629 2014-01-14
  • 打赏
  • 举报
回复
你可以把你要返回的数据存到数组里面或者list集合里面,然后返回这个集合也可以把?
threenewbee 2014-01-14
  • 打赏
  • 举报
回复
如果你希望“逐一返回”,你应该用yield return而不是return,看代码: 主程序:
foreach (string user in GetUsers())
{
    MessageBox.Show(user);
}
函数:
IEnumerable<string> GetUsers()
{
    string s = "a;b;c;d;e";
    foreach (string user in s.Split(';'))
    {
        yield return user;
    }
}
zyz910629 2014-01-14
  • 打赏
  • 举报
回复
return de shi di yici xunhuan chulai de shuju a !~
threenewbee 2014-01-14
  • 打赏
  • 举报
回复
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;//这里指返回一条数据怎么回事? }
mianrong 2014-01-14
  • 打赏
  • 举报
回复
哦,我检查了下代码,其实放在foreach外面的
ziseyu1631 2014-01-14
  • 打赏
  • 举报
回复
你想返回什么呢,你这个return放到foreach里面了,所以只返回第一条,但是如果你搬到foreach外面,就肯定返回最后一条了,要看你的需求是什么,才能决定你代码怎么修改
小猪八Q 2014-01-14
  • 打赏
  • 举报
回复
你在foreach里面return,自然只能返回第一条了
zhujiazhi 2014-01-14
  • 打赏
  • 举报
回复
return表示msgUsers这个方法都结束的,当然只返回一条数据了 把return放到foreach外面的
  • 打赏
  • 举报
回复
return 语句挪到 foreach 语句块外面
神奇的章鱼哥 2014-01-14
  • 打赏
  • 举报
回复
看这代码,不管如何,它就返回xxxxxxx

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧