Example #1
0
        /// <summary>
        /// 获取第一个匹配值
        /// </summary>
        /// <param name="array">数组数据</param>
        /// <param name="isValue">数据匹配器</param>
        /// <param name="index">起始位置</param>
        /// <returns>第一个匹配值,失败为default(/*Type[0]*/ulong/*Type[0]*/)</returns>
        public static /*Type[0]*/ ulong /*Type[0]*/ firstOrDefault(this SubArray </*Type[0]*/ ulong /*Type[0]*/> array, Func </*Type[0]*/ ulong /*Type[0]*/, bool> isValue, int index)
        {
            if ((uint)index < (uint)array.Length)
            {
                fixed(/*Type[0]*/ ulong /*Type[0]*/ *valueFixed = array.Array)
                {
                    /*Type[0]*/
                    ulong /*Type[0]*/ *valueIndex = FixedArray.IndexOf(valueFixed + array.Start + index, array.Length - index, isValue);

                    if (valueIndex != null)
                    {
                        return(*valueIndex);
                    }
                }
            }
            return(default(/*Type[0]*/ ulong /*Type[0]*/));
        }
Example #2
0
        /// <summary>
        /// 替换数据
        /// </summary>
        /// <param name="array">数组数据</param>
        /// <param name="value">新值</param>
        /// <param name="isValue">数据匹配器</param>
        public static SubArray </*Type[0]*/ ulong /*Type[0]*/> replaceFirst(this SubArray </*Type[0]*/ ulong /*Type[0]*/> array, /*Type[0]*/ ulong /*Type[0]*/ value, Func </*Type[0]*/ ulong /*Type[0]*/, bool> isValue)
        {
            if (array.Length != 0)
            {
                fixed(/*Type[0]*/ ulong /*Type[0]*/ *valueFixed = array.Array)
                {
                    /*Type[0]*/
                    ulong /*Type[0]*/ *valueIndex = FixedArray.IndexOf(valueFixed + array.Start, array.Length, isValue);

                    if (valueIndex != null)
                    {
                        *valueIndex = value;
                    }
                }
            }
            return(array);
        }
Example #3
0
        /// <summary>
        /// 获取匹配数据位置
        /// </summary>
        /// <param name="array">数据数组</param>
        /// <param name="isValue">数据匹配器</param>
        /// <returns>匹配位置,失败为-1</returns>
        public static int indexOf(this SubArray </*Type[0]*/ ulong /*Type[0]*/> array, Func </*Type[0]*/ ulong /*Type[0]*/, bool> isValue)
        {
            if (array.Length != 0)
            {
                fixed(/*Type[0]*/ ulong /*Type[0]*/ *valueFixed = array.Array)
                {
                    /*Type[0]*/
                    ulong /*Type[0]*/ *start = valueFixed + array.Start, index = FixedArray.IndexOf(start, array.Length, isValue);

                    if (index != null)
                    {
                        return((int)(index - valueFixed));
                    }
                }
            }
            return(-1);
        }
Example #4
0
        /// <summary>
        /// 获取匹配数据位置
        /// </summary>
        /// <param name="array">数组数据</param>
        /// <param name="value">匹配数据</param>
        /// <returns>匹配位置,失败为-1</returns>
        public static int indexOf(this LeftArray </*Type[0]*/ ulong /*Type[0]*/> array, /*Type[0]*/ ulong /*Type[0]*/ value)
        {
            if (array.Length != 0)
            {
                fixed(/*Type[0]*/ ulong /*Type[0]*/ *valueFixed = array.Array)
                {
                    /*Type[0]*/
                    ulong /*Type[0]*/ *index = FixedArray.IndexOf(valueFixed, array.Length, value);

                    if (index != null)
                    {
                        return((int)(index - valueFixed));
                    }
                }
            }
            return(-1);
        }