Beispiel #1
0
        public virtual com.cpkf.yyjd.tools.data.sort.DataBlocks AppendMerge(com.cpkf.yyjd.tools.data.sort.DataBlocks anotherBlocks)
        {
            com.cpkf.yyjd.tools.data.sort.DataBlocks result = new com.cpkf.yyjd.tools.data.sort.DataBlocks();
            foreach (DataBlock block in blocks)
            {
                result.AddDataBlock(block);
            }
            DataBlock bl = result.GetMarkedDatas();

            foreach (DataBlock block_1 in anotherBlocks.GetBlocks())
            {
                block_1.RemoveBlock(bl);
                result.AddDataBlock(block_1);
            }
            return(result);
        }
Beispiel #2
0
 // 与操作时,记blocks1 = a1,a2..an, blocks2 = b1,b2...bm
 // 则返回结果为 newblocks = a1*b1, a1*b2...a1*bm, a2*b1 ... an*b1, an*b2...an*bm
 // 一共分为n*m层次,当前blocks拥有更高的优先级.
 public virtual com.cpkf.yyjd.tools.data.sort.DataBlocks AndMerge(com.cpkf.yyjd.tools.data.sort.DataBlocks anotherBlocks)
 {
     com.cpkf.yyjd.tools.data.sort.DataBlocks result = new com.cpkf.yyjd.tools.data.sort.DataBlocks();
     foreach (DataBlock block in blocks)
     {
         foreach (DataBlock ab in anotherBlocks.GetBlocks())
         {
             result.AddDataBlock(block.AndDataBlock(ab));
         }
     }
     return(result);
 }
Beispiel #3
0
        // 或操作时,取消所有的分块,按照一个块返回所有可能
        public virtual com.cpkf.yyjd.tools.data.sort.DataBlocks OrMerge(com.cpkf.yyjd.tools.data.sort.DataBlocks anotherBlocks)
        {
            com.cpkf.yyjd.tools.data.sort.DataBlocks result = new com.cpkf.yyjd.tools.data.sort.DataBlocks();
            DataBlock db = new DataBlock();

            foreach (DataBlock block in blocks)
            {
                db = db.OrDataBlock(block);
            }
            foreach (DataBlock ab in anotherBlocks.GetBlocks())
            {
                db = db.OrDataBlock(ab);
            }
            result.AddDataBlock(db);
            return(result);
        }