定义个list,,循环-》首先查找-》如果有则标记,没有则插入。

解决方案 »

  1.   

    ArrayList al = new ArrayList();for(int i = 0; i < ......... i ++)
    {
        if (al.Contains(你的表格[i]))
           Console.WriteLine(你的表格[i],已经存在);
        else
            al.Add(你的表格[i]);
    }
      

  2.   

    回复人: hyspeter(独钓寒江) ( ) 信誉:100  2005-01-07 09:55:00  得分: 0  
     
     
       定义个list,,循环-》首先查找-》如果有则标记,没有则插入。
      
    那第一次插入的就无法标记,要求将所有重复的都标记,你漏掉了第一个。
      

  3.   

    我重新说一下思路,首先要定义个一个hashtable,然后循环表格,
    在hashtable里查找表格里的内容,如果有标记,没有则插入hashtable,
    在hahtable内部有个内部循环,他用的是快表查询(起码delphi是这样)比自己的循环快多了
      

  4.   

    Hashtable hashtable = new Hashtable();
    for(int i = 0; i <你的表格.count i ++)
    {
      try
     {
       hashtable.Add(你的表格[i],你的表格[i])
     }
     catch(Exception e)
     {
      Console.WriteLine(你的表格[i],已经存在);
     }
    }
      

  5.   

    都忽律了一个重要环节:
    首先在list里不存在插入list里,继续循环发现有重复,则标记,但是在list中与它重复的记录没有标记,与要求不付。
    用hashtable是一个办法,hashtable里保存判断重复的列的值和行号,有重复就将hashtable中的记录和没插入的记录都标记,有人有更好的办法吗?
      

  6.   

    我想我的方法在数据量大的情况下会比al.Contains(你的表格[i]))
    这个方法快的,因为哈西表是不使用循环做重复检测的,它的取Key时间应该是一个常数,在数据量大的情况下这一点相当重要.
      

  7.   

    楼主的意思是说
    int[] b={1,1,2,3,4,4,5,5,6,6,9,0,10}
    整理完应该是
    int[] b={2,3,9,0,10}
    吗?还是
    int[] b={1,2,3,4,5,6,9,0,10}
    请说明
      

  8.   

    举个例子说明:
    行号                   数值
    1                      1
    2                      2
    3                      2
    4                      1
    5                      3
    6                      4
    那么我就要求标记出
    行号                   数值              标记
    1                      1                 true
    2                      2                 true
    3                      2                 true
    4                      3
    5                      1                 true
    6                      4
      

  9.   

    看看这个
    using System;
    using System.Collections;namespace ConsoleApplication1
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class Class1
    {

    class Data
    {
    public int key=0;
    public object obj=null;
    public bool diploid=false;
    }

    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    Data[] data=new Data[100]; 
    //要在此对data赋值

    Hashtable hashtable = new Hashtable();
    for(int a=0;a<data.Length;a++)
    {
    Data temp=(Data)hashtable[data[a].key];
    if(temp==null)
    {
    hashtable.Add(data[a].key,data[a]);
    }
    else
    {
    temp.diploid=true;
    data[a].diploid=true;
    hashtable.Remove(temp.key);
    hashtable.Add(data[a].key,data[a]);
    }
    }

    }
    }
    }
      

  10.   

    如果Int 列得数值是有估算得范围得得话也可以用桶排序找出,这是最快得方法了.