【Unity】C#:BitArray 拡張

DEVELOP, Unity

using System;
using System.Collections;
 
namespace mira
{
    /// <summary>
    /// BitArray拡張メソッド
    /// </summary>
    public static class BitArrayExtensions
    {
        /// <summary>
        /// いずれかのビットがONになっているか確認します。
        /// </summary>
        static public bool Any( this BitArray self )
        {
            foreach (bool bit in self)
            {
                if (bit)
                {
                    return true;
                }
            }
            return false;
        }
 
        /// <summary>
        /// 全てのビットがONになっているか確認します。
        /// </summary>
        public static bool All(this BitArray self)
        {
            foreach (bool bit in self)
            {
                if (!bit)
                {
                    return false;
                }
            }
            return true;
        }
 
        /// <summary>
        /// すべてのビットがOFFになっているかを取得します。
        /// </summary>
        public static bool None(this BitArray self)
        {
            return !Any(self);
        }
 
        /// <summary>
        /// 指定ビットを反転する。
        /// </summary>
        public static void Flip(this BitArray self, int index)
        {
            self.Set(index, !self.Get(index));
        }
    }
}

Posted by kazupon