У меня есть текстовый файл, который содержит 8,14 миллиона строк. Я пытаюсь найти все строки, которые содержат определенные c слова. В приведенном ниже коде есть раздел ******
. Это займет 1,07 секунды в этом разделе. Эта скорость настолько медленная, что я хотел бы найти самый быстрый способ.
Как я могу сделать это быстрее всего?
// The Random.txt file contains 8.14 million items of the below format.
// format = [groupnumber],[name],[num1],[num2],[num3],[num4],[num5],[num6]
// group1,car,1,22,37,39,42,45
// group2,fruit,1,12,13,14,22,36
// group3,robot,4,6,9,31,32,34
// group4,cat,11,12,17,19,42,45
// group5,dog,40,41,42,43,44,45
// ...
// ...
// load file to list group1
var group1 = File.ReadLines("Random.txt", Encoding.Default).ToList();
*****************************************************************************************
//I want this section to be faster
Stopwatch w = new Stopwatch();
w .Start();
// Find items in group1 that contain all 4,6,9,31,32 in num area
var group2 = group1.AsParallel().Select(x => x + ",").Where(x => x.Contains(",4,")
&& x.Contains(",6,")
&& x.Contains(",9,")
&& x.Contains(",31,")
&& x.Contains(",32,"))
.Select(x => x.Substring(0, x.Length - 1)).ToList();
w .Stop();
//Elapsed Time : 00:00:01.0722169
//I want this section to be faster
******************************************************************************************