如何从文本文件中打印随机行但排除包含某些字符的行?C#

AB147

我正在尝试从文件中读取行,但我想排除包含不相关字符的行。我只想打印包含字母字符的行。此外,一旦打印了一行,我就不想再次打印它。这是我当前的代码:

`string[] lines = System.IO.File.ReadAllLines(@"File Location");  //Create line array..
Random rnd1 = new Random(); //Random value

Console.ReadKey();

Console.WriteLine("Contents of file.txt:");
foreach (string line in lines)
{
Console.WriteLine(lines[rnd1.Next(lines.Length)]); //Print random line
}

`

鲁弗斯

一种方法是在您从文件中读取行时过滤这些行。我们可以通过将每一行视为字符数组来做到这一点,通过将可接受的非字母数字字符作为 an 传递IEnumerableLinq扩展方法排除可接受的非字母数字字符.Except(),然后我们可以.All通过调用结构体IsLetter方法来测试其余字符是否为字母char(如果字符是字母则返回真)。

例如:

Random random = new Random();

static void Main()
{
    // Valid non-alphanumeric characters are stored in this list.
    // Currently this is only a space, but you can add other valid
    // punctuation here (periods, commas, etc.) if necessary.
    var validNonAlphaChars = new List<char> {' '};

    // Get all lines that contain only letters (after
    // excluding the valid non-alpha characters).
    var fileLines = File.ReadAllLines(@"c:\temp\temp.txt")
        .Where(line => line.Except(validNonAlphaChars).All(char.IsLetter))
        .ToList();

    // Shuffle the lines so they're in a random order using the Fisher-Yates
    // algorithm (https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle)
    for (int i = 0; i < fileLines.Count; i++)
    {
        // Select a random index after i
        var rndIndex = i + random.Next(fileLines.Count - i);

        // Swap the item at that index with the item at i
        var temp = fileLines[rndIndex];
        fileLines[rndIndex] = fileLines[i];
        fileLines[i] = temp;
    }

    // Now we can output the lines sequentially from fileLines
    // and the order will be random (and non-repeating)
    fileLines.ForEach(Console.WriteLine);

    GetKeyFromUser("\nPress any key to exit...");
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用C#在文本文件行中逐个字符地读取

来自分类Dev

删除文本文件中包含特定字符的行

来自分类Dev

如何显示文本文件中的随机行?

来自分类Dev

如何显示文本文件中的随机行?

来自分类Dev

如何显示文本文件中的随机行?

来自分类Dev

如何在文本文件中的包含字符串的行的末尾添加文本?

来自分类Dev

如何用文本文件中的随机行多次替换字符串

来自分类Dev

如何提取文本文件中的特定行以及包含特定字符串的多行?

来自分类Dev

如何在文本文件中grep查找包含逗号的以行分隔的字符串?

来自分类Dev

如何在C ++中使用fstream从文本文件中获取某些行

来自分类Dev

如何从C#文本文件中的一行中获取10行以下

来自分类Dev

如何从文本文件中打印随机单词

来自分类Dev

如何从文本文件中检索随机行,然后在PHP中从文本文件中删除该行

来自分类Dev

如果文本文件包含字符串,则使用PowerShell从文本文件中删除行

来自分类Dev

如何在c#中解析文本文件中的特定行

来自分类Dev

如何删除或跳过文本文件中的行列表并在新文本文件中打印剩余的行?

来自分类Dev

在同时对文本文件进行某些操作之后,如何删除该文本文件中的特定行

来自分类Dev

文本文件中的精确匹配单词并打印包含单词的行

来自分类Dev

如何在文本文件的特定行中更新特定值C#

来自分类Dev

如何在C#中的指定行之后读取文本文件

来自分类Dev

如何在文本文件中读取超过 2 行?C#

来自分类Dev

如何在c#中从一行删除到文本文件的末尾?

来自分类Dev

Bash脚本读取文本文件中的随机行

来自分类Dev

从文本文件中获取随机行

来自分类Dev

Bash脚本读取文本文件中的随机行

来自分类Dev

从文本文件中获取随机行

来自分类Dev

从文本文件中的随机行生成 URL?

来自分类Dev

使用UNIX删除文本文件中的某些行

来自分类Dev

列出python中文本文件中的某些行

Related 相关文章

  1. 1

    如何使用C#在文本文件行中逐个字符地读取

  2. 2

    删除文本文件中包含特定字符的行

  3. 3

    如何显示文本文件中的随机行?

  4. 4

    如何显示文本文件中的随机行?

  5. 5

    如何显示文本文件中的随机行?

  6. 6

    如何在文本文件中的包含字符串的行的末尾添加文本?

  7. 7

    如何用文本文件中的随机行多次替换字符串

  8. 8

    如何提取文本文件中的特定行以及包含特定字符串的多行?

  9. 9

    如何在文本文件中grep查找包含逗号的以行分隔的字符串?

  10. 10

    如何在C ++中使用fstream从文本文件中获取某些行

  11. 11

    如何从C#文本文件中的一行中获取10行以下

  12. 12

    如何从文本文件中打印随机单词

  13. 13

    如何从文本文件中检索随机行,然后在PHP中从文本文件中删除该行

  14. 14

    如果文本文件包含字符串,则使用PowerShell从文本文件中删除行

  15. 15

    如何在c#中解析文本文件中的特定行

  16. 16

    如何删除或跳过文本文件中的行列表并在新文本文件中打印剩余的行?

  17. 17

    在同时对文本文件进行某些操作之后,如何删除该文本文件中的特定行

  18. 18

    文本文件中的精确匹配单词并打印包含单词的行

  19. 19

    如何在文本文件的特定行中更新特定值C#

  20. 20

    如何在C#中的指定行之后读取文本文件

  21. 21

    如何在文本文件中读取超过 2 行?C#

  22. 22

    如何在c#中从一行删除到文本文件的末尾?

  23. 23

    Bash脚本读取文本文件中的随机行

  24. 24

    从文本文件中获取随机行

  25. 25

    Bash脚本读取文本文件中的随机行

  26. 26

    从文本文件中获取随机行

  27. 27

    从文本文件中的随机行生成 URL?

  28. 28

    使用UNIX删除文本文件中的某些行

  29. 29

    列出python中文本文件中的某些行

热门标签

归档