Generics & Anonymous Delegate

Type[] types = Array.FindAll(assembly.GetExportedTypes(), 
    delegate(Type type)
    {
        return (!type.IsAbstract && type.IsClass);
    });
Array.Sort(types, 
    delegate(Type type1, Type type2)
    {
        if (type1 == type2) return 0;
        return type1.AssemblyQualifiedName.CompareTo(type2.AssemblyQualifiedName);
    });

C#2.0の特徴であるGenericsと匿名Delegateを多用したロジック。現在実行中のアセンブリから、公開されている具象クラスのTypeオブジェクトを配列に抽出して、完全修飾名の順でソートしている。
Genericsと匿名デリゲートの組み合わせは、慣れると非常に効率良くループや比較判定処理のコードが書けるのだが、果たしてこれが本当に保守性に寄与するのかどうか、それが問題だ。
慣れてしまえばどうってことは無いのだ、慣れてしまえば。