
Untitled
By: a guest on
Jun 17th, 2012 | syntax:
C# | size: 1.57 KB | hits: 37 | expires: Never
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace osisp_ex_enums
{
class Program
{
static void Main(string[] args)
{
IEnumerable<string> source = new string[] { "one", "two", "three", "four" };
Func<string, bool> predicateFunc = Predicate;
IEnumerable<string> stringEnum = StringListEnumerator.Where(source, predicateFunc);
foreach (string stringOutput in stringEnum)
{
Console.WriteLine(stringOutput);
}
Console.ReadLine();
}
private static bool Predicate(string input)
{
if (input.Length > 3)
return true;
return false;
}
}
public static class StringListEnumerator
{
public static IEnumerable<string> Where(this IEnumerable<string> source, Func<string, bool> predicate)
{
//with enumerator
IEnumerator<string> stringEnum = source.GetEnumerator();
while (stringEnum.MoveNext())
{
if (predicate(stringEnum.Current))
{
yield return stringEnum.Current;
}
}
//or without it
/*foreach (string inputString in source)
{
if (predicate(inputString))
{
yield return inputString;
}
}*/
}
}
}