麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

C#如何從List集合當中取出子集合

2019-11-14 13:35:31
字體:
來源:轉載
供稿:網友

今天項目要求隨機從數據庫中隨機取出若干條數據,放到首頁。那么要如何隨機取出這個子集合呢?本人向到的方法如下:

1、假設數據量很少,如我數據庫中只有10條數據,而我要求隨機取出8條。對于這種低數據量,大可以一次過全部取出放到父集合當中,然后隨機remove去兩條。

            List<Model> list = new  MyService().QueryList().ToList();            Random random=new Random();   //注意,不能在while里面創建random因子,因為這樣會導致隨機因子失效。            while(list.Count()>8)            {                int index=random.Next(list.Count());                list.RemoveAt(index);            }        

 

2、假設數據量適中,我測試的表格數據量是387332條數據,id是uniqueidentifier類型,共取出8條數據,一共用了3秒時間。(如果id是int的自增類型,會更快)。

            Random random = new Random();            StringBuilder sb = new StringBuilder();            sb.Append("select * from (select ROW_NUMBER()Over(ORDER BY 某一字段) as 'x',* from tablename) as a where ");            //假設你要從中取8條數據            int total = new MyService().QueryCount();  //假設這個是表格數據的總條數            int count = total / 8;            for (int i = 0; i < 8; i++)            {                if (i == 7)                {                    //最后一次                    sb.Append(" a.x=" + random.Next(count * i, total).ToString());                }                else                {                    //不是最后一次                    sb.Append(" a.x=" + random.Next(count * i, count * (i + 1)).ToString()+" or");                 }            }            string sql = sb.ToString();            //最后得出了sql語句,現在就可以查出 以count為間隔 的隨機集合。

 

 

3、如果數據量很巨大,得到百萬千萬級的,那么就需要數據庫本身的索引來處理了,最常見的便是自增型的id,因為以這個id來order排序相當于不用排序。其他情況我也沒很深的理解,網上資料很多,只有自行查閱了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: jizzjizz中国人少妇中文 | 久久国产精品一区 | 999精品久久久 | 免费黄色短视频网站 | 久久精品无码一区二区三区 | 欧美天堂一区 | 91精品免费在线 | 久久久国产精品免费观看 | 黄色网络免费看 | 欧美一级一区二区三区 | 91九色视频在线播放 | 欧美特一级 | 日本黄色一级视频 | 国产乱淫a∨片免费观看 | 国产chinesehd精品91 | 激情黄页 | 亚洲影视在线 | 国产精品成人av片免费看最爱 | 九九黄色影院 | 亚州综合一区 | 韩国一大片a毛片 | 12av电影 | 国产女同疯狂激烈互摸 | 欧美.com | 日韩大片在线永久观看视频网站免费 | 久久成人国产精品 | 草b视频在线观看 | 天天干导航 | 精品国产三级a | 国产精品91久久久 | 国产乱free国语对白 | 中文区永久区 | 国产88久久久国产精品免费二区 | 欧美三级欧美成人高清www | 看免费毛片| 亚洲综合无码一区二区 | 免费久久久久 | 99精品国产在热久久婷婷 | 国产免费观看电影网站 | 免费a级片在线观看 | 精品国产乱码一区二区 |