搜索数组的内容以获取不同的值

时间:2011-12-20 12:04:59

标签: arrays

如果任何数组成员与其他成员不同,我需要搜索数组的内容

我在一个阵列中注册设备ID,如果连接了任何不同的设备,我必须检查?错误的设备可以连接任何可用的端口。所以在我拿走所有ID之后,我需要检查一下是否都是一样的。最多可同时连接6个设备。设备ID将在运行时决定。

我在下面写了代码,但它不是一个有效的代码。我也需要错误的设备索引,这个索引无法通过此代码获得

    private byte ArrayCheck(byte[] array) {
        byte buffer=0;
        bool result=false;
        for (byte i = 0; i < array.Length; i++)      
        {
            if (array[i] != 0)                      
                buffer = array[i];
        }

        for (byte i = 0; i < array.Length; i++)  
        {
            if (array[i] != 0)                      
            {
                if (array[i] == buffer)
                    result = true;         
                else
                {
                    result = false;         
                    break;
                }
            }
        }
        if (result)
            return buffer;
        else
            return 0;
    }

谢谢

1 个答案:

答案 0 :(得分:0)

所有合作回答者:记​​住评论,他们会更清楚。

OOP:代码看起来像Java,对吧? 我不会做比较,我只是算数。所以你只需要遍历一次数组,建立“桶”。例如,你可以使用Map来实现,其中id是键,count是值。然后你找出最高计数项,从地图中删除它,其余的键是你的“错误”ID。也许有更高效的实现而不是地图。也许你甚至可以制作自己的小数据结构,取一个id,计算它然后给你“错误的”id列表。
这样你甚至可以处理超过2种不同的ID 对于两个ID具有相同计数的情况,您必须弄清楚客户的需求是什么。也许你可以采取“第一” - 所以它或多或少是随机的。