1.迭代文件的行
public static IEnumerable ReadLines(string fileName)
{
using (TextReader reader = File.OpenText(fileName))
{
string line;
if ((line = reader.ReadLine()) != null)
{
yield return line;
}
}
}
static void Main()
{
foreach (string line in Iterator.ReadLines(""))
{
Console.WriteLine(line);
}
}
2.使用迭代器和谓词对文件中的行进行筛选
public static IEnumerable where(IEnumerable source, Predicate predicate)
{
if (source == null || predicate == null)
{
throw new ArgumentNullException();
}
return WhereImplemeter(source, predicate);
}
private static IEnumerable WhereImplemeter(IEnumerable source, Predicate predicate)
{
foreach (T item in source)
{
if (predicate(item))
{
yield return item;
}
}
}
static void Main()
{
IEnumerable lines = File.ReadAllLines(@"your file name");
Predicate predicate = delegate(string line)
{
return line.StartsWith("using");
};
foreach (string str in where(lines, predicate))
{
Console.WriteLine(str);
}
}
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn