/// <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. Parallel线程安全问题

    废话不多说,上代码: using System; using System.Collections.Generic; using System.Threading.Tasks; namespace P ...

  2. 【RL-TCPnet网络教程】第17章 RL-TCPnet之UDP通信

    第17章      RL-TCPnet之UDP通信 本章节为大家讲解RL-TCPnet的UDP通信实现,学习本章节前,务必要优先学习第16章UDP用户数据报协议基础知识.有了这些基础知识之后,再搞本章 ...

  3. Android OpenSL ES 开发:Android OpenSL 录制 PCM 音频数据

    一.实现说明 OpenSL ES的录音要比播放简单一些,在创建好引擎后,再创建好录音接口基本就可以录音了.在这里我们做的是流式录音,所以需要用至少2个buffer来缓存录制好的PCM数据,这里我们可以 ...

  4. [Swift]LeetCode10. 正则表达式匹配 | Regular Expression Matching

    Given an input string (s) and a pattern (p), implement regular expression matching with support for  ...

  5. [Swift]LeetCode464. 我能赢吗 | Can I Win

    In the "100 game," two players take turns adding, to a running total, any integer from 1.. ...

  6. [Swift]LeetCode599. 两个列表的最小索引总和 | Minimum Index Sum of Two Lists

    Suppose Andy and Doris want to choose a restaurant for dinner, and they both have a list of favorite ...

  7. WebWorker与WebSocket实现前端消息总线

    Web Worker让JS有了多线程的能力,可以将复杂耗时的操作都交付给Worker线程处理.WebSocket让web端与服务端维持一个有效的长连接,实现服务端主动推送数据.将二者一结合,业务系统信 ...

  8. Python档案袋(函数与函数装饰器 )

    特点:代码复用.可扩展.保持一致性 函数简单的实现,返回值的不同: #定义方法 def funx1(): pass def funx2(): return 0 def funx3(): return ...

  9. 参数验证 @Validated 和 @Valid 的区别

    来源:blog.csdn.net/qq_27680317/article/details/79970590 整编:Java技术栈(公众号ID:javastack) Spring Validation验 ...

  10. Qt中OpenGL模块下将图片转化为纹理,并传入shader中

    QImage texture, buffer; buffer.load("C:/Users/wukesong/Pictures/flower.jpg"); texture = QG ...