【C#】BitArray拡張

2020/03/27DEVELOP, Unity

BitArrayを使ったBit操作を少し楽にする。

using System;
using System.Collections;
 
namespace mira
{
    /// <summary>
    /// BitArray拡張メソッド
    /// </summary>
    public static class BitArrayExtension
    {
        /// <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