如何去掉矩阵中的重复行
设有一个二维数组形式的矩阵,矩阵的每行中元素还有数字和字符串,如何去除掉相同的行?这里相同的行是指各纬度上的值都是相同的。
我想到的解决办法如下:
把每行的值连成一个字符串,作为HashTable的key,用行向量的index作为Key,时间复杂度应该是o(n)。遍历HashTable,获得对应的index,就是去处重复后剩下的行序号。
对于纯数字的矩阵,有没有更好的解决办法呢?
补充:找个一个新的解决办法,利用的DataView方法:
- //去掉重复行的DataView
- DataView myDataView = new DataView(dataTable);
- string[] strComuns ={ "dataColumn", "dataType" };
- dg2.DataSource = myDataView.ToTable(true, strComuns);
dataColumn和dataType是Datatable中的数据列名,ToTable方法的第一个参数指定是否去除重复行,第二个参数指定用哪几个列判断是否是重复行。