ソースコード
public static bool SequenceEqualAllowedNull<TSource>
(
this IEnumerable<TSource> self,
IEnumerable<TSource> second
)
{
return self switch
{
null when second == null => true,
null => false,
_ => second != null && self.SequenceEqual( second )
};
}
使用例
var array1 = Array.Empty<string>();
string[] array2 = null;
Debug.Log( array1.SequenceEqualAllowedNull( array2 ) );
Debug.Log( array2.SequenceEqualAllowedNull( array1 ) );
Debug.Log( array1.SequenceEqualAllowedNull( Array.Empty<string>() ) );
Debug.Log( array2.SequenceEqualAllowedNull( null ) );