如何去掉矩阵中的重复行

设有一个二维数组形式的矩阵,矩阵的每行中元素还有数字和字符串,如何去除掉相同的行?这里相同的行是指各纬度上的值都是相同的。

我想到的解决办法如下:

把每行的值连成一个字符串,作为HashTable的key,用行向量的index作为Key,时间复杂度应该是o(n)。遍历HashTable,获得对应的index,就是去处重复后剩下的行序号。

对于纯数字的矩阵,有没有更好的解决办法呢?

 

补充:找个一个新的解决办法,利用的DataView方法:

  1.   //去掉重复行的DataView
  2.    DataView myDataView = new DataView(dataTable);
  3.   string[] strComuns ={ "dataColumn", "dataType" };
  4.    dg2.DataSource = myDataView.ToTable(true, strComuns);

dataColumn和dataType是Datatable中的数据列名,ToTable方法的第一个参数指定是否去除重复行,第二个参数指定用哪几个列判断是否是重复行。

posted @ 2012-06-01 12:47  Zigzag  阅读(1566)  评论(0编辑  收藏  举报