Случайное написание строк из URL или без - PullRequest
0 голосов
/ 05 апреля 2020

Я свободен sh в c# У меня есть важный вопрос.

Я хочу сделать случайного текстового писателя одной строкой из URL "список"

У меня есть этот код :

WebClient web = new WebClient();
string text = web.DownloadString("https://pastebin.com/raw/ky2qyTVz");
Colorful.Console.WriteLine("Codded by xxx - ", text);

Это можно сделать с помощью URL, но если вы знаете, как сделать это без URL, вы можете отредактировать этот код.

Но я хочу, чтобы он записывал в консоли только один из линия от URL случайным образом. Если кто-то может помочь мне с этим и сделать окончательный рабочий код, спасибо <3, я много чего пробовал, но не могу сделать это. </p>

Ответы [ 2 ]

0 голосов
/ 05 апреля 2020

У вас две проблемы.

Вы не знаете, сколько строк вы получили. Вы можете использовать считыватель строк для l oop по строкам, чтобы получить количество строк.

Вам необходимо сгенерировать случайное число от 0 до количества строк. Для этого вы можете использовать класс Random.

Собрав их вместе, вы можете использовать что-то вроде следующего кода:

    using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {

            WebClient web = new WebClient();
            string text = web.DownloadString("https://pastebin.com/raw/g064BJhZ"); //this is your call, but it only returns 2 lines. Not very interesting.
            StringBuilder sb = new StringBuilder(); //we make a test string with more lines:
            for (int i = 0; i < 25; i ++)
            {
                sb.AppendLine($"This is line {i}");
            }

            List<string> lines = new List<string>(); //we want to hold all the lines
//you could be more efficient here, just showing you an easy to understand 
            using (StringReader sr = new StringReader(sb.ToString()))
            {
                while (sr.Peek() >= 0) //while we have more lines
                {
                    lines.Add(sr.ReadLine()); //add this line to our list

                }
            }
            for(int i = 0; i < 5; i++) //now lets output some random lines:
            {
//this says using a random number, between 0 and the number of lines,
// write the line to the console.
                Console.WriteLine(lines[RandomNumber(0, lines.Count()-1)]);
            }


        }
        public static int RandomNumber(int min, int max)
        {
            Random random = new Random();
            return random.Next(min, max);
        }
    }
}

Мой вывод: это строка 4 Это строка 12 Это строка 12 Это строка 19 Это строка 21

0 голосов
/ 05 апреля 2020

Если я правильно понял, вам нужно Split веб-контент в строки и выбрать его случайным образом, используя Random, например:

WebClient web = new WebClient();
string text = web.DownloadString("https://pastebin.com/raw/g064BJhZ");

var lines = text.Split(new string[] { "." }, StringSplitOptions.None);
Random rnd = new Random();
int randomLineIndex = rnd.Next(0, lines.Count());
var randomline = lines[randomLineIndex];

Console.WriteLine("Codded by xxx - ", randomline);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...