2005年9月5日月曜日

C# 2.0のコレクションクロージャメソッド

http://capsctrl.que.jp/kdmsnr/wiki/bliki/?CollectionClosureMethod

改めて書いてみると、なんかすごいムズムズする……

using System;
using System.Collections.Generic;
using System.Text;

namespace Closure
{
class Employee
{
public bool IsManager
{
get {return true;}
}

public void doSomething()
{
}

public Office office
{
get { return new Office(); }
}
}

class Office
{
}

class Business
{
public List<Employee> managers(List<Employee> emps)
{
return emps.FindAll(
delegate(Employee e)
{
return e.IsManager;
}
);
}

public void Do(List<Employee> emps)
{
emps.ForEach(
delegate(Employee e)
{
e.doSomething();
}
);
}

public List<Office> collect(List<Employee> emps)
{
return emps.ConvertAll<Office>(
delegate(Employee e)
{
return e.office;
}
);
}

public bool allManagers(List<Employee> emps)
{
return emps.TrueForAll(
delegate(Employee e)
{
return e.IsManager;
}
);
}

public bool noManagers(List<Employee> emps)
{
return !emps.Exists(
delegate(Employee e)
{
return e.IsManager;
}
);
}
}
}

0 件のコメント:

コメントを投稿