/// <summary>
/// 生成随机索引列表
/// </summary>
/// <param name="maxNumber"></param>
/// <returns></returns>
private static List<int> CreateRandomNumbers(int maxNumber)
{
var array = new int[maxNumber];
for (var i = 0; i < maxNumber; i++)
{
array[i] = i;
}
var rnd = new Random();
for (var i = 0; i < maxNumber; i++)
{
var index = rnd.Next(0, maxNumber);
if (i != index)
{
var tmpval = array[i];
array[i] = array[index];
array[index] = tmpval;
}
}
var list = new List<int>();
for (var i = 0; i < maxNumber; i++)
{
list.Add(array[i]);
}
return list;
} /// <summary>
/// 生成随机索引列表
/// </summary>
/// <param name="maxNumber"></param>
/// <returns></returns>
private static List<int> CreateRandomNumbers2(int maxNumber)
{
List<int> list = new List<int>();
Random rd = new Random();
while (list.Count() < maxNumber)
{
int i = rd.Next(0, maxNumber);
if (!list.Contains(i))
{
list.Add(i);
}
}
return list;
} /// <summary>
/// 生成随机索引列表
/// </summary>
/// <param name="maxNumber"></param>
/// <returns></returns>
private static List<int> CreateRandomNumbers2(int maxNumber)
{
var array = new int[maxNumber, 2];
var index = maxNumber - 1;
var rnd = new Random();
while (index > 0)
{
array[index, 0] = index;
array[index, 1] = rnd.Next(0, maxNumber);
index--;
}
var list = new List<int>();
for (var i = 0; i < maxNumber; i++)
{
for (var j = i + 1; j < maxNumber; j++)
{
if (array[i, 1] > array[j, 1])
{
var tIndex = array[i, 0];
var tValue = array[i, 1]; array[i, 0] = array[j, 0];
array[i, 1] = array[j, 1]; array[j, 0] = tIndex;
array[j, 1] = tValue;
}
}
}
for (var i = 0; i < maxNumber; i++)
{
list.Add(array[i, 0]);
}
return list;
}

  

第一种速度最快,第二种次之,第三种最慢

C# 生成随机索引列表的更多相关文章

  1. <每日一题>题目28:生成随机的测验试卷(单选题)

    #项目:生成随机的测验试卷文件 import random #资料库 capitals = {'北京市':'京','上海市':'沪','天津市':'津','重庆市':'渝','河北省':'冀','山西 ...

  2. PHP生成随机水印图片

    基于PHP的GD图形库,自己生成一张图片.仅限初识GD库,实例学习. 一.需求 网站的布局用到了类似慕课网课程列表的风格,每一个课程是一个banner图,图下面是标题加简介.因为课程的数量较大没有为所 ...

  3. Framework7 索引列表插件的问题

    前言 Framework7 作为移动端的开发框架的优良之处已经无需多言.现在已经有了 React 和 Vue 版本,之前在项目中用过 F7 + vue 的开发方式,无论是效率还是产出都近乎完美.有时间 ...

  4. 利用Java随机,生成随机学生数据

    为模拟向数据库中大量插入学生数据(注:此处应该用PreparedStatement.batchUpdate等批处理提高效率)的情形,通过Java随机来生成学生数据. 一.要生成的学生数据 studen ...

  5. Framework7 索引列表插件的异步加载实现

    前言 Framework7 作为移动端的开发框架的优良之处已经无需多言.现在已经有了 React 和 Vue 版本,之前在项目中用过 F7 + vue 的开发方式,无论是效率还是产出都近乎完美.有时间 ...

  6. Python生成随机验证码,大乐透号码

    实例笔记之生成随机号码 扩展知识 - yield(生成器) 随机生成验证码 示例代码: import random # 导入标准模块中的random if __name__ == '__main__' ...

  7. 利用Masscan批量生成随机ip地址表

    简介 Masscan是Kali下集成的高效扫描器,和nmap命令有很多相似之处 命令生成随机ip masscan -sL 10.0.0.0/24 > c段.txt masscan -sL 10. ...

  8. C# 生成随机的6位字母,包含大小写

    今天自己做项目需要生成随机的6位字母,于是自己写了一个,下面代码是可以生成任意位数字母的. string _zimu = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefg ...

  9. Python生成随机数组的方法小结

    Python生成随机数组的方法小结 本文实例讲述了Python生成随机数组的方法.分享给大家供大家参考,具体如下: 研究排序问题的时候常常需要生成随机数组来验证自己排序算法的正确性和性能,今天把Pyt ...

随机推荐

  1. Javascript高级编程学习笔记(86)—— Canvas(3)绘制矩形

    绘制矩形 矩形是唯一一种可以直接在2D上下文中绘制的形状. 与矩形有关的方法包括: fillRect() strokeRect() clearRect() 上述方法都接收四个参数: 绘制矩形的 X 坐 ...

  2. [Swift]LeetCode144. 二叉树的前序遍历 | Binary Tree Preorder Traversal

    Given a binary tree, return the preorder traversal of its nodes' values. Example: Input: [1,null,2,3 ...

  3. [Swift]LeetCode403. 青蛙过河 | Frog Jump

    A frog is crossing a river. The river is divided into x units and at each unit there may or may not ...

  4. [Swift]LeetCode477. 汉明距离总和 | Total Hamming Distance

    The Hamming distance between two integers is the number of positions at which the corresponding bits ...

  5. [Swift]LeetCode1008. 先序遍历构造二叉树 | Construct Binary Search Tree from Preorder Traversal

    Return the root node of a binary search tree that matches the given preorder traversal. (Recall that ...

  6. kubernetes---docker-image

    imagePullPolicy  <String> Always : 总是从仓库下载 , 如果是image的tag是latest ,如果需要一直保持最新,则应设为Always ,从仓库下载 ...

  7. Vue实现移动端页面切换效果

    找了好多博客实现效果都……emmm…… 应用Vue自带的过渡 < 进入/离开 & 列表过渡 >和 嵌套路由 和 fixed定位实现 其实还是挺简单的. 在子页面把整个页面做绝对定位 ...

  8. PyCharm证书过期:Your license has expired

    报错“your evaluation license has expired, pycharm will now exit”1.解决步骤,点击‘Activation code’,授权激活pycharm ...

  9. 不在models.py中的models

    概述 如何让你定义的model不在models.py中 在app的models目录中的models 你新建一个app后这个models.py就会自动建立,里面只有几行代码.那么如果是一个中大型项目,每 ...

  10. [十六]JavaIO之InputStreamReader 与 OutputStreamWriter

      简介 InputStreamReader OutputStreamWriter是转换流 InputStreamReader 是字节流通向字符流的桥梁,它将字节流转换为字符流. OutputStre ...