コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】List.Find の null チェックを少しだけ簡潔に記述できる拡張メソッド

ソースコード

using System;
using System.Collections.Generic;

public static class ListExt
{
    public static bool TryFind<T>( this List<T> self, Predicate<T> match, out T result ) where T : class
    {
        result = self.Find( match );
        return result != null;
    }
}

使用例

通常

var result = list.Find( c => c.Contains( "ピカチュウ" ) );
if ( result != null )
{
    Console.WriteLine( result );
}

拡張メソッド

if ( list.TryFind( c => c.Contains( "ピカチュウ" ), out var result ) )
{
    Console.WriteLine( result );
}