谁能告诉我如何从txt文件中读取随机行?我想从txt文件中读取随机行,并在textBox中仅显示该行.代码示例会很棒!Thanx in foward
我的字典有这个工作代码:
dict = new Dictionary<string, string>();
using (StreamReader read = new StreamReader("dictionaryfile.csv"))
{
string line;
while ((line = read.ReadLine()) != null)
{
string[] splitword = line.Split(',');
dict.Add(splitword[0], splitword[1]);
}
}
Run Code Online (Sandbox Code Playgroud)
我已在 Windows 窗体中添加了一个按钮,如何分配字典中的随机条目以通过单击按钮显示在消息框中?
可能重复:
随机数生成器不按我计划的方式工作(C#)
我做了一个生成随机数的简单例程
private int randomNumber()
{
Random random = new Random();
int randomNum = random.Next(0, 100);
Response.Write(randomNum);
return randomNum;
}
Run Code Online (Sandbox Code Playgroud)
我以相同的方式在我的page_load中的两个不同阶段调用它:
// A/B Test
if (randomNumber() <= 50)
{
...
Run Code Online (Sandbox Code Playgroud)
我发现,两个数字总是一样的.有任何想法吗?
//创建一个由十行组成的字符串数组.string [] personalNumbers; //将personalNumbers声明为10元素数组personalNumbers = new string [10]; // = {"第一个数字","第二个数字","第三行"等}
for (int i = 0; i < 9; i++) // populate the array with 10 random values
{
Random random = new Random();
int randomNumber = random.Next(1, 50);
string RandomNumberText = Convert.ToString(randomNumber);
personalNumbers[i] = RandomNumberText;
}
Run Code Online (Sandbox Code Playgroud)
嗨,我知道这个SEEMS是先前提出的问题的副本,但我试图生成1到50之间的一系列随机数来填充数组
问题是,如果我按照课堂上的教学方式进行,每个数字都是一样的
我知道问题是紧密循环导致随机播种的数字相同
然而,其他线程没有解决的问题是如何在使用循环迭代时修复此问题....
迄今为止所有的解释都超出了我们的水平,我(以及其他的问题BTW)不知道如何将它们作为一种解决方案实现,我也无法在课堂上提交,因为它们是我们尚未涉及的技术
微软的教程坚持认为将随机内置于循环中是正确的解决方案
我已经尝试在循环外部放置一个随机实例,然后从循环内部调用它,但这导致了异常
是否有一种直接的方法来使用随机创建一系列不会遇到此问题的随机数?
我正在自动化一个应用程序,可以在指定的日期范围之间打开记录.我知道我可以创建一个随机选择数组中数字的数组,例如:
DateTime.Now.AddDays(90).ToString("MM/dd/yyyy")
Run Code Online (Sandbox Code Playgroud)
但是,我想知道是否有更好的方法来解决这个问题.请帮忙!谢谢.
我对一般的线程很新,我想在C#中尝试它.我试图对每秒钟衰减并且每10秒重新填充一次的吨位进行基本模拟.从我读到的,线程安全是我需要考虑的事情,因为有两个线程; 一个用于将变量吨位减少160,一个用于向吨位添加随机量,并且由于它们正在对变量吨位进行交易,我应该确保它们被正确访问.
我读了如何使用锁(对象),我理解简单的线程示例的概念,但我如何使用它永远运行的2个线程,并且必须及时调整吨位?
这就是我所拥有的,但当我锁定整个循环时,另一个线程永远不会产生.或者我有错误的代码结构?
public double tonnage = 1000;
private object x = new object();
//Starts the simulation, runs forever until user ends the simulation
private void btnStart_Click(object sender, EventArgs e)
{
//Decay Tonnage
Thread decayTonnageThread = new Thread(() => decayTonnage (tonnage));
decayTonnageThread .Start();
//Add Tonnage
Thread addTonnageThread = new Thread(() => addTonnage (tonnage));
addTonnageThread .Start();
}
//I want to decay the tonnage every 20 seconds
public void decayTonnage (double tonnage)
{
lock(x)
{
while (true) …Run Code Online (Sandbox Code Playgroud) 可能重复:
C#中的
随机数随机数生成器不按照我计划的方式工作(C#)
我在5个方框中得到相同的数字.怎么可以避免?
using System;
using System.Windows.Forms;
namespace LotteryTickets
{
public partial class Form1 : Form
{
/// <summary>
/// no-args Constructor
/// </summary>
public Form1()
{
InitializeComponent();
}
#region "== Control Event Handlers =="
private void Form1_Load(object sender, EventArgs e)
{
ClearWinningNumbers();
}
#endregion "== End Control Event Handlers =="
#region "== Methods ==";
/// <summary>
/// Clears the text inside the winning number "balls"
/// </summary>
private void ClearWinningNumbers()
{
this.lblPickFive_1.Text = "";
this.lblPickFive_2.Text = "";
this.lblPickFive_3.Text …Run Code Online (Sandbox Code Playgroud) 您好,
我使用此函数(在类中)随机化数字:
private int RandomNumber(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}
public void Init()
{
x = RandomNumber(0,500);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我稍后调用多个对象来执行此操作:
Obj[] obj = new Obj[64];
for( int i = 0 ; i < 64 ; i++ )
{
obj[i] = new Obj();
}
...
for( int i = 0 ; i < 64 ; i++ )
{
obj[i].Init();
}
Run Code Online (Sandbox Code Playgroud)
那么每个对象都有完全相同的'x'值.
这有什么不对?
可能重复:
为什么我的随机数生成器在C#中不是随机的?
我有以下代码:
int a;
int aa;
Random aRand = new Random();
Random aaRand = new Random();
a = aRand.Next(20);
aa = aaRand.Next(20);
//if (a == aa)
{
Console.WriteLine(a + " " + aa);
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
我假设aRand和aaRand是两个不同的值,但事实并非如此.我究竟做错了什么?我假设aRand和aaRand并不总是一样,但是它们一直都是一样的.
谢谢
playerDice = new Dice();
int playerDiceNo = playerDice.getfaceofDie();
MessageBox.Show("Your roll" + playerDiceNo);
compDice = new Dice();
int compDiceNo = compDice.getfaceofDie();
MessageBox.Show("Computers roll:" + compDiceNo);
Run Code Online (Sandbox Code Playgroud)
上面是我点击滚动按钮时的方法.下面是我的骰子课:
class Dice
{
private int faceofDie;
public void rollDice()
{
Random rollDice = new Random();
faceofDie = rollDice.Next(1, 7);
}
public int getfaceofDie()
{
return faceofDie;
}
}
Run Code Online (Sandbox Code Playgroud)
我已经为compDice和playerDice声明了我的变量:
Dice compDice;
Dice playerDice;
Run Code Online (Sandbox Code Playgroud)
我似乎无法弄清楚为什么它会为两个翻转都返回0.有人可以帮忙吗?