当前位置: 首页>>代码示例>>C#>>正文


C# Bucket.Add方法代码示例

本文整理汇总了C#中Bucket.Add方法的典型用法代码示例。如果您正苦于以下问题:C# Bucket.Add方法的具体用法?C# Bucket.Add怎么用?C# Bucket.Add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Bucket的用法示例。


在下文中一共展示了Bucket.Add方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Run

        public override BucketList Run()
        {
            var result = new BucketList();
            var generalizedBucketList = base.Run();

            foreach (var bucket in generalizedBucketList)
            {
                var privateBucket = new Bucket();
                foreach (var tuple in bucket)
                {
                    if (Int32.Parse(tuple.GetValue(tuple.GetNumberOfAttributes() - 1)) == 1)
                    {
                        tuple.RemoveAttribute(tuple.GetNumberOfAttributes() - 1);
                        privateBucket.Add(tuple);
                    }
                    if (privateBucket.Count > 0)
                        privateBucket.node = bucket.node;
                }
                if (privateBucket.Count > 0)
                    result.Add(privateBucket);
            }
            return result;
        }
开发者ID:tothbalazs0920,项目名称:DataAnonymizationLibrary,代码行数:23,代码来源:Mpalm.cs

示例2: NodeReplaceTest

        public void NodeReplaceTest()
        {
            engine.TimeOut = TimeSpan.FromMilliseconds(25);
            ManualResetEvent handle = new ManualResetEvent(false);
            Bucket b = new Bucket();
            for (int i = 0; i < Bucket.MaxCapacity; i++)
            {
                Node n = new Node(NodeId.Create(), new IPEndPoint(IPAddress.Any, i));
                n.LastSeen = DateTime.UtcNow;
                b.Add(n);
            }

            b.Nodes[3].LastSeen = DateTime.UtcNow.AddDays(-5);
            b.Nodes[1].LastSeen = DateTime.UtcNow.AddDays(-4);
            b.Nodes[5].LastSeen = DateTime.UtcNow.AddDays(-3);

            engine.MessageLoop.QuerySent += delegate(object o, SendQueryEventArgs e)
            {
                if (!e.TimedOut)
                    return;

                b.Nodes.Sort();
                if ((e.EndPoint.Port == 3 && nodeCount == 0) ||
                     (e.EndPoint.Port == 1 && nodeCount == 1) ||
                     (e.EndPoint.Port == 5 && nodeCount == 2))
                {
                    Node n = b.Nodes.Find(delegate(Node no) { return no.EndPoint.Port == e.EndPoint.Port; });
                    n.Seen();
                    PingResponse response = new PingResponse(n.Id, e.Query.TransactionId);
                    DhtEngine.MainLoop.Queue(delegate
                    {
                        //System.Threading.Thread.Sleep(100);
                        Console.WriteLine("Faking the receive");
                        listener.RaiseMessageReceived(response, node.EndPoint);
                    });
                    nodeCount++;
                }

            };

            ReplaceNodeTask task = new ReplaceNodeTask(engine, b, null);
            // FIXME: Need to assert that node 0.0.0.0:0 is the one which failed - i.e. it should be replaced
            task.Completed += delegate(object o, TaskCompleteEventArgs e) { handle.Set(); };
            task.Execute();

            Assert.IsTrue(handle.WaitOne(4000, false), "#10");
        }
开发者ID:Cyarix,项目名称:monotorrent,代码行数:47,代码来源:TaskTests.cs

示例3: Run

        public override BucketList Run()
        {
            var result = new BucketList();
            var generalizedBucketList = base.Run();
            var genPerm = GetBestPermutedTable(generalizedBucketList);

            foreach (var bucket in genPerm)
            {
                //if any of the bucket is null, it means that it is not delta-present, k has to be increased
                if (bucket == null) return null;
                var privateBucket = new Bucket();
                foreach (var tuple in bucket)
                {
                    if (Int32.Parse(tuple.GetValue(tuple.GetNumberOfAttributes() - 1)) == 1)
                    {
                        tuple.RemoveAttribute(tuple.GetNumberOfAttributes() - 1);
                        privateBucket.Add(tuple);
                    }
                    if (privateBucket.Count > 0)
                        privateBucket.node = bucket.node;
                }
                if (privateBucket.Count > 0)
                {
                    foreach (int i in qid)
                        privateBucket.PermuteValues(i);
                    result.Add(privateBucket);
                }
            }

            return result;
        }
开发者ID:tothbalazs0920,项目名称:DataAnonymizationLibrary,代码行数:31,代码来源:GeneralizationAndPermutationConbined.cs

示例4: ConvertDataTableToBucket

        public Bucket ConvertDataTableToBucket(DataTable dt)
        {
            Bucket bucket = new Bucket();

            foreach (DataRow row in dt.Rows)
            {
                var tuple = new data.Tuple();
                tuple.SetQid(qid);
                foreach (DataColumn column in dt.Columns)
                {
                    string value = row[column].ToString().Trim();
                    tuple.AddValue(value);
                }
                bucket.Add(tuple);
            }
            return bucket;
        }
开发者ID:tothbalazs0920,项目名称:DataAnonymizationLibrary,代码行数:17,代码来源:Mondrian.cs

示例5: FindStrictSplit

        /// <summary>
        /// Strict partitioning step of the Mondrian algorithm.
        /// </summary>
        /// <returns>Returns true, if it is possible to split the bucket,
        /// false otherwise.</returns>
        private bool FindStrictSplit(Bucket bucket, List<IHierarchy> hierarchies, int hierarchyIndex)
        {
            Node originalNode = CopyNode(bucket.node);
            Node specializedNode = CopyNode(bucket.node);
            int level = specializedNode.generalizations[hierarchyIndex];
            if (level != 0)
                specializedNode.generalizations[hierarchyIndex] = level - 1;
            else
                return false;

            bucket.node = CopyNode(specializedNode);

            Bucket specializedEQClass = GeneralizeBucket(bucket, hierarchies);

            int dimension = hierarchies[hierarchyIndex].GetQid();

            foreach (var splittingValue in GetDistinctValues(specializedEQClass, dimension))
            {
                Bucket right = new Bucket(), left = new Bucket();
                foreach (var t in specializedEQClass)
                {
                    if (t.GetValue(dimension).Equals(splittingValue))
                        left.Add(t);
                    else
                        right.Add(t);
                }
                // If the left has the same size as the original eq, maybe it is possible to release more generalizations.
                left.node = CopyNode(specializedNode);
                if (left.Count == bucket.Count)
                {
                    queue.Enqueue(left);
                    return true;
                }

                Node leftNode = left.node;
                var generalizedRight = new Bucket();
                generalizedRight.node = CopyNode(originalNode);

                //generalize back the right side/the rest
                if (right.Count > 0)
                {
                    if (right.HasDistinctValuesAt(dimension) != -1)
                    {
                        right.node = CopyNode(originalNode);
                        generalizedRight = GeneralizeBucket(right, hierarchies);
                    }
                    else
                    {
                        right.node = CopyNode(specializedNode);
                        generalizedRight = right;
                        generalizedRight.node = CopyNode(specializedNode);
                    }
                }

                if (IsAnonymous(left) && IsAnonymous(generalizedRight))
                {
                    queue.Enqueue(generalizedRight);
                    queue.Enqueue(left);
                    return true;
                }
            }
            bucket.node = CopyNode(originalNode);
            return false;
        }
开发者ID:tothbalazs0920,项目名称:DataAnonymizationLibrary,代码行数:69,代码来源:Mondrian.cs

示例6: GeneralizeBucket

        /// <summary>
        /// Generalizes or specializes the input bucket according to the given hierarchy 
        /// and hierchy level that is stored inside the hierarchy.
        /// </summary>
        /// <returns>Returns the specialized or generalized version of the input Bucket.</returns>
        protected Bucket GeneralizeBucket(Bucket bucket, List<IHierarchy> hierarchies)
        {
            Bucket newEq = new Bucket();

            for (int i = 0; i < hierarchies.Count; i++)
            {
                hierarchies[i].SetLevel(bucket.node.generalizations[i]);
            }

            foreach (data.Tuple tuple in bucket)
            {
                //I suppose that the dimension of id is 0
                int id = Convert.ToInt32(tuple.GetValue(0));
                newEq.Add(idHashIndex[id]);
            }
            var generalizedEq = newEq.Generalize(hierarchies);

            Node node = CopyNode(bucket.node);
            generalizedEq.node = node;
            return generalizedEq;
        }
开发者ID:tothbalazs0920,项目名称:DataAnonymizationLibrary,代码行数:26,代码来源:Mondrian.cs


注:本文中的Bucket.Add方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。