Cast
лишний или не верныйusing System.Threading;
using System.Diagnostics;
using System.Text;
using Microsoft.VisualBasic;
static class m20
{
public static List<string> arr = new List<string>();
public static int cnt = 25_000_000;
public static Random rnd = new Random();
public static int l = 20;
public static Stopwatch stopWatch = new Stopwatch();
public static List<string> req = new List<string>();
public static int rcnt = 20;
public static List<string> res = new List<string>();
static void Main()
{
gen();
".. вроде готово".print();
arr.Count.ToString().print();
rgen();
req.Count.ToString().print();
find();
res.Count.ToString().print();
}
static void gen()
{
stopWatch.Start();
for (var i = 0; i < cnt; i++)
{
l = rnd.Next(15, 25);
var sb = new StringBuilder();
for (var j = 0; j < l; j++) sb.Append(rnd.Next('!', '}'));
arr.Add(sb.ToString());
}
stopWatch.Stop();
stopWatch.Elapsed.print();
}
static void rgen()
{
stopWatch.Start();
for (var i = 0; i < rcnt; i++)
{
var rn = rnd.Next(1_000_000, arr.Count - 1);
req.Add(arr[rn].Substring(5, 5));
}
stopWatch.Stop();
stopWatch.Elapsed.print();
}
static void find()
{
stopWatch.Start();
foreach (var s in arr)
foreach (var q in req)
if (s.Contains(q)) res.Add(s);
stopWatch.Stop();
stopWatch.Elapsed.print();
}
public static void print(this string s) => Console.WriteLine(s);
public static void print(this TimeSpan ts) => Console.WriteLine($"{ts.Hours}:{ts.Minutes}:{ts.Seconds}.{ts.Milliseconds / 10}");
}
ps в смысле прочтения.. а ответы, если были - дело рук человеческих ;)))