示例#1
0
    public void Insert(T value, float cmp)
    {
        DupEntry newEntry = new DupEntry(cmp, value);

        for (int i = 0; i <= entries.Count; i++)
        {
            if (i == entries.Count || newEntry.comparator >= entries[i].comparator)
            {
                entries.Insert(i, newEntry);
                break;
            }
        }
    }
示例#2
0
        public void Check()
        {
            DupList = new List <DupEntry>();
            int count = cat.lines.Count;

            isDup = new bool[count];
            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < count - 1; i++)
            {
                if (!isDup[i])
                {
                    if (i % 100 == 0)
                    {
                        rtb1.Text = "Checking " + i + " / " + count;
                        Application.DoEvents();
                    }
                    DupEntry d = new DupEntry();
                    d.firstIdx = i;
                    d.dupIdx   = new List <int>();
                    for (int j = i + 1; j < count; j++)
                    {
                        if (cat.lines[i][0] == cat.lines[j][0] &&
                            cat.lines[i][1] == cat.lines[j][1] &&
                            cat.lines[i][2] == cat.lines[j][2] &&
                            cat.lines[i][3] == cat.lines[j][3] &&
                            cat.lines[i][4] == cat.lines[j][4])
                        {
                            isDup[i] = isDup[j] = true;
                            d.dupIdx.Add(j);
                        }
                    }
                    if (d.dupIdx.Count != 0)
                    {
                        sb.Append("Found duplicate times " + d.dupIdx.Count + " for Index " + d.firstIdx + "\n");
                        DupList.Add(d);
                    }
                }
            }
            rtb1.Text = "Checking " + count + " / " + count + "\n";
            rtb1.AppendText(sb.ToString());
            Application.DoEvents();
        }
示例#3
0
 public void Check()
 {
     DupList = new List<DupEntry>();
     int count = cat.lines.Count;
     isDup = new bool[count];
     StringBuilder sb = new StringBuilder();
     for (int i = 0; i < count - 1; i++)
         if (!isDup[i])
         {
             if (i % 100 == 0)
             {
                 rtb1.Text = "Checking " + i + " / " + count;
                 Application.DoEvents();
             }
             DupEntry d = new DupEntry();
             d.firstIdx = i;
             d.dupIdx = new List<int>();
             for (int j = i + 1; j < count; j++)
             {
                 if (cat.lines[i][0] == cat.lines[j][0] &&
                    cat.lines[i][1] == cat.lines[j][1] &&
                    cat.lines[i][2] == cat.lines[j][2] &&
                    cat.lines[i][3] == cat.lines[j][3] &&
                    cat.lines[i][4] == cat.lines[j][4])
                 {
                     isDup[i] = isDup[j] = true;
                     d.dupIdx.Add(j);
                 }
             }
             if (d.dupIdx.Count != 0)
             {
                 sb.Append("Found duplicate times " + d.dupIdx.Count + " for Index " + d.firstIdx + "\n");
                 DupList.Add(d);
             }
         }
     rtb1.Text = "Checking " + count + " / " + count + "\n";
     rtb1.AppendText(sb.ToString());
     Application.DoEvents();
 }