У меня есть 2 сценария из примеров LINQ от Microsoft. Первый будет считать все строки текста в текстовом файле. Во втором будут перечислены только записи, удовлетворяющие определенному условию.
Как я могу применить то же условие к первому скрипту подсчета?
string[] records = File.ReadAllLines(@"C:\Reports\MyReports.txt");
try
{
int numberOfRecords = records.Count();
Console.WriteLine(
"There are {0} records in the text file.",
numberOfRecords);
}
catch (OverflowException)
{
Console.WriteLine("The count is too large to store as an Int32.");
Console.WriteLine("Try using the LongCount() method instead.");
}
var targetLines = File.ReadAllLines(@"C:\Reports\MyReports.txt")
.Select((x, i) => new { Line = x, LineNumber = i })
.Where( x => x.Line.Contains(".dwg"))
.ToList();
foreach (var line in targetLines)
{
Console.WriteLine("{0} : {1}", line.LineNumber, line.Line);
}
File.WriteAllText (@"C:\Reports\MyReports2.txt", Util.ToCsvString (targetLines));
1 ответ
Как я могу применить то же условие к первому скрипту подсчета?
Как это:
int numberOfRecords = records.Count(x => x.Line.Contains(".dwg"));
Идея состоит в том, чтобы изменить вызываемый метод: вместо метода без параметров * вызовите метод перегрузка, которая принимает условие.
* Технически Count()
принимает единственный параметр - список, к которому он применяется. Параметр не отображается, поскольку он передается неявно с использованием синтаксиса метода расширения.
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.