日期:2014-05-20  浏览次数:21014 次

LINQ ILIST 接口的问题,重复数据。
本帖最后由 yangchunmarch 于 2013-03-26 09:48:31 编辑
 IList<wnewslist> list2 = new List<wnewslist>();  //定义ilist
        wnewslist wineNews = new wnewslist();    //这个是自己定义,有id,title
        var db = news.db;
        int channel1 = 1500;
        string strr = "";
        var db1 = db.Where(p => p.ChannelID == channel1).Skip(5).Take(5);  // 查询数据库。
        foreach (var p in db1)
        {
           
            wineNews.Title = "";
            wineNews.ID = p.ID.ToString();
            wineNews.Title = p.Title.ToString();
            strr = p.Title;
           
            
            list2.Add(wineNews);
            Response.Write(wineNews.Title);   //输出标题
            Response.Write("<br/>");
         


        }


        string con1 = JsonConvert.SerializeObject(list2);   //序列化,

        Response.Write(con1);    //输出最后的数据。


数据结果



啤酒麦香的中医道
你知道吗?啤酒“上头”有内因
好麦香从哪里来?
啤酒肚“冤案”
为何啤酒瓶总偏爱绿色?


[{"ID":"244645","Title":"为何啤酒瓶总偏爱绿色?"},{"ID":"244645","Title":"为何啤酒瓶总偏爱绿色?"},{"ID":"244645","Title":"为何啤酒瓶总偏爱绿色?"},{"ID":"244645","Title":"为何啤酒瓶总偏爱绿色?"},{"ID":"244645","Title":"为何啤酒瓶总偏爱绿色?"}]


为啥输出的最后的数据是重复的,而不像上边的那样,是不是ilist这个设置的不对。
linq,ilist

------解决方案--------------------
wnewslist wineNews = new wnewslist();    //这个是自己定义,有id,title
上面这句放在循环里,每次都要新实例化

 IList<wnewslist> list2 = new List<wnewslist>();  //定义ilist
         var db = news.db;
         int channel1 = 1500;
         string strr = "";
         var db1 = db.Where(p => p.ChannelID == channel1).Skip(5).Take(5);  // 查询数据库。
         foreach (var p in db1)
         {
    wnewslist wineNews = new wnewslist();    //这个是自己定义,有id,title