日期:2014-05-16  浏览次数:20915 次

C#关于双重循环的问题?
平台:C# webfrom
我用gridview绑定了数据库的一张表,如下图:

页面上有一个按钮,我点这个按钮,执行以下效果,不知道是否可以?
我想把相关的数据发到对应的邮件里面,不是一个一个的发出去,而是,先把gridview里面相同姓名的送出不同的物品组成一个字符串,再一起发出去,发了一次就不要再发了。
我想要得到的字符串是:“小王您好,请查收你的物品:苹果,梨子”发往“163@163.com”
           “小李您好,请查收你的物品:香蕉,榴莲”发往“126@126.com”
           “小张您好,请查收你的物品:青枣”发往“sina@sina.com”
           “小刘您好,请查收你的物品:火龙果”发往“sohu@sohu.com”
请问朋友们,我应该如何去实现?
------解决方案--------------------

List<User> users = new List<User>
{
    new User{ No=1,Name="小王",Prize="苹果",Email="163@163.com" },
    new User{ No=2,Name="小王",Prize="梨子",Email="163@163.com" },
    new User{ No=3,Name="小李",Prize="香蕉",Email="126@126.com" },
    new User{ No=4,Name="小张",Prize="青枣",Email="sina@sina.com" },
    new User{ No=5,Name="小李",Prize="榴莲",Email="126@126.com" },
    new User{ No=6,Name="小刘",Prize="火龙果",Email="sohu@sohu.com" }
};
Func<IEnumerable<User>, User> func = (a) =>
{
    User user = a.First();
    user.Prize = string.Join(",", a.Select(b => b.Prize));
    return user;
};
users.GroupBy(a => a.Name).Select(func).ToList().ForEach(a =>
{
    Console.WriteLine("{0}您好,请查收你的物品:{1}”发往“{2}", a.Name, a.Prize, a.Email);
});

------解决方案--------------------
写个查询语句呗,你都能把数据从数据库里查出来,干这个小事还用再问吗
比如:用Linq或者遍历GridView , name="某某某",然后再组合成你想要的字串格式 
------解决方案--------------------
二楼代码挺吊蛋的,先收下,有机会试试