Пример #1
0
    /// <summary>
    /// 是否数据一致
    /// </summary>
    protected override bool toDataEquals(BaseData data)
    {
        ActivityPartData mData = (ActivityPartData)data;

        if (mData.datas != null)
        {
            if (this.datas == null)
            {
                return(false);
            }
            if (this.datas.size() != mData.datas.size())
            {
                return(false);
            }
            IntObjectMap <ActivityData> datasR = mData.datas;
            if (!this.datas.isEmpty())
            {
                int            datasKFreeValue = this.datas.getFreeValue();
                int[]          datasKKeys      = this.datas.getKeys();
                ActivityData[] datasVValues    = this.datas.getValues();
                for (int datasKI = datasKKeys.Length - 1; datasKI >= 0; --datasKI)
                {
                    int datasK = datasKKeys[datasKI];
                    if (datasK != datasKFreeValue)
                    {
                        ActivityData datasV = datasVValues[datasKI];
                        ActivityData datasU = datasR.get(datasK);
                        if (datasU != null)
                        {
                            if (datasV == null)
                            {
                                return(false);
                            }
                            if (!datasV.dataEquals(datasU))
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            if (datasV != null)
                            {
                                return(false);
                            }
                        }
                    }
                }
            }
        }
        else
        {
            if (this.datas != null)
            {
                return(false);
            }
        }

        return(true);
    }