删除多维数组对象重复行[,]? [英] Delete duplicate rows from Multidimensional Object array [,]?
问题描述
让我们假设我有多维对象数组重新presents简单的矩阵
Let's Assume I have Multi dimensional Object array that represents simple matrix
Object[,] mybaseobject = new object[,] {
{"Rakesh", "Martin", "21"},
{"Rohith", "M", "22"},
{"Rakesh", "Martin", "21"},
{"varsha", "MJ", "18"},
即使String对象[,]也符合罚款,我的项目
Even if String object[,] also fits fine for my project
据对象数组看起来像
Rakesh Martin 21
Rohith M 22
Rakesh Martin 21
Rohith M 22
varsha Mj 18
Rohith M 22
请找我的方式来删除重复的行,并使阵列看起来像这样?
Please find me way to delete duplicate rows and make array to look like this?
Rakesh Murthy 21
Rohith M 22
varsha Mj 18
我使用这种方法[溢流论坛堆现行办法之一] [1]
I am using this approach [one of existing approach in stack over flow forum ][1]
<一个href=\"http://stackoverflow.com/questions/19587004/delete-duplicate-rows-from-two-dimentsional-array\">Delete复制从两个dimentsional阵列排
但在abovelink工作正常多维整数数据我需要为多维对象阵列解决方案[,]
But in abovelink works fine for Multidimensional Integer data I need solution for Multidimensional object array[,]
请帮我在此先感谢(+1)
Please help me out thanks(+1) in advance
推荐答案
正如其他人所指出的那样,你可能不希望与对象的工作[,]
。下面是变换目标的实现[,]
到列表&LT;对象[]&GT;
,执行上的过滤,然后变换列表与LT;反对[]方式&gt;
回二维数组
As others have pointed out, you may not want to work with object[,]
. Below is an implementation that transforms the object[,]
to List<object[]>
, performs filtering on that, then transforms the List<object[]>
back to a two dimensional array.
void Filter()
{
Object[,] mybaseobject = new object[,]
{
{ "Ranjith", "Murthy" },
{ "Rohith", "M" },
{ "Ranjith","Murthy" },
{ "varsha", "MJ" }
};
var objectList = AsList(mybaseobject);
var distinctLines = new List<object[]>();
foreach (var line in objectList)
{
if (!distinctLines.Any(x => x.SequenceEqual(line)))
{
distinctLines.Add(line);
}
}
var filteredobjects = AsTwoDimentionalArray(distinctLines);
}
private List<object[]> AsList(object[,] input)
{
var lines = new List<object[]>();
for(var i = 0; i < input.GetLength(0);++i)
{
var line = new List<object>( input.GetLength(1));
for (var j = 0; j < input.GetLength(1); ++j)
{
line.Add(input[i, j]);
}
lines.Add(line.ToArray());
}
return lines;
}
private object[,] AsTwoDimentionalArray(List<object[]> input)
{
var result = new object[input.Count(), input[0].Length];
for (var i = 0; i < input.Count; ++i)
{
for(var j = 0; j < input[0].Length; ++j)
{
result[i, j] = input[i][j];
}
}
return result;
}
这篇关于删除多维数组对象重复行[,]?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!