删除多维数组对象重复行[,]? [英] Delete duplicate rows from Multidimensional Object array [,]?

查看:178
本文介绍了删除多维数组对象重复行[,]?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

让我们假设我有多维对象数组重新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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆