从嵌入的文本文件中随机选取一行

本文关键字:选取 一行 随机 文本 文件 | 更新日期: 2023-09-27 18:13:33

如何从嵌入的文本文件中随机选择一行?

当我运行程序时,它崩溃并给我这个错误(路径中的非法字符)在这一行(String[] randFirst = File.ReadAllLines(Separis_Fantasy_Tools_PE.Properties.Resources.fnames);)

这是我的。

private void btnRandom_Click(object sender, EventArgs e)
    {
        String nFirstName;
        String nLastName;
        Random fname = new Random();
        Random lname = new Random();

            String[] randFirst = File.ReadAllLines(Separis_Fantasy_Tools_PE.Properties.Resources.fnames);
            nFirstName = randFirst[fname.Next(randFirst.Length)];
            String[] randLast = File.ReadAllLines(Separis_Fantasy_Tools_PE.Properties.Resources.lnames);
            nLastName = randLast[lname.Next(randLast.Length)];

        txtCharacterName.Text = nFirstName + " " + nLastName;
        return;

    }

从嵌入的文本文件中随机选取一行

Separis_Fantasy_Tools_PE.Properties.Resources.fnames是文本文件本身,而不是文本文件的路径。

private void btnRandom_Click(object sender, EventArgs e)
{
    String nFirstName;
    String nLastName;
    Random rnd= new Random();

    String[] randFirst = Separis_Fantasy_Tools_PE.Properties.Resources.fnames.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
    nFirstName = randFirst[rnd.Next(randFirst.Length)];
    String[] randLast = Separis_Fantasy_Tools_PE.Properties.Resources.lnames.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
    nLastName = randLast[rnd.Next(randLast.Length)];

    txtCharacterName.Text = nFirstName + " " + nLastName;
    return;

}

另一个变化是,您不需要两个随机对象,只需使用一个并调用next两次。你可能不需要担心它,但你也应该意识到,你编写代码的方式,你可能会得到相同的随机数,每次调用你的函数(如果你做得非常快)。