数组之间转换的一个算法(C#)

在物料管控项目中,面对手机A零件拆解并用于组装手机B的问题,部分零件需重复使用,部分需重新领取,部分退还仓库。该问题转化为数组操作,通过设计算法来解决零件的流转管理。
摘要由CSDN通过智能技术生成

      最近手上一个物料管控项目遇到这样一个问题。如果拆解手机A中零件,然后来组装手机B,这个过程中拆下A手机的零件有一部份可能在组装B手机的时候需要用到,但有一部份,组装B手机只能从仓库重新领过,还有被拆下A的手机部分零件B是不需要的,所以要退还仓库。

     问题大概如此,现在将问题转换为数组,在拆A手机时候拆下的零件如下记录形式

 

拆解下来的物料表A

序号index
料号id
料号name
用量
1
100504
按键
4
2
300456
前盖
1
3
400153
后盖
1

要组装的B手机需要的物料表

序号index
料号id
料号name
用量
1
100504
按键
4
2
400153
后盖
1
3
500145
电池
1
4
600157
棉花泡子
2
5
600183
天线
1

 我们先利用二维数组AA存储A物料表的信息,BB数组存储B物料表的信息,然后写个算法,得到如下CC数组。
 
序号index
料号id
料号name
用量
1(A,B共有)
100504
按键
4
2(A,B共有)
400153
后盖
1
3(B有A没有)
500145
电池
1
4(B有A没有)
600157
棉花泡子
2
5(B有A没有)
600183
天线
1
6(A有B没有)
400153
后盖
1

 

设计算法如下:

     public   bool  FindStingArray( string  [,] AA, string  straa)
        
{
            
int k=0;
            
for (int i=0;i<AA.GetLength(0);i++)
            
{
                
if (AA[i,1]!=straa)
                
{
                    k
++;
                }

            }

            
if(k==AA.GetLength(0))
            
{
                
return false;
            }

            
else
            
{
                
return true;
            }

        }

 

public   void  ConvertArray( string  [,] AA, string  [,] BB, string  [,] CC)
        
{
            
int k=0;
            
for (int i=0;i<AA.GetLength(0);i++)
            
{
                
//如果AA[i,1]在BB数组中
                if (FindStingArray(BB,AA[i,1]))
                
{
                    CC[k,
0]=(k+1).ToString();
                    CC[k,
1]=AA[i,1];
                    CC[k,
2]=AA[i,2];
                    CC[k,
3]=AA[i,3];
                    k
++;
                }

            }

            
for (int i=0;i<BB.GetLength(0);i++)
            
{
                
//如果BB[i,1]不在AA数组中
                if (!FindStingArray(AA,BB[i,1]))
                
{
                    CC[k,
0]=(k+1).ToString();
                    CC[k,
1]=BB[i,1];
                    CC[k,
2]=BB[i,2];
                    CC[k,
3]=BB[i,3];
                    k
++;
                }

            }

            
for (int i=0;i<AA.GetLength(0);i++)
            
{
                
//如果AA[i,1]不在BB数组中
                if (!FindStingArray(BB,AA[i,1]))
                
{
                    CC[k,
0]=(k+1).ToString();
                    CC[k,
1]=AA[i,1];
                    CC[k,
2]=AA[i,2];
                    CC[k,
3]=AA[i,3];
                    k
++;
                }

            }

        }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值