RadhaKrishnaKiJaya
asked on
Handling arrays
Hi Experts,
I have a structure called BOX with 2 elements. ID and Status.
I have created an object
public NewBox(5) as box
After I process the first element, I want to overwrite the Current element with the next element. Is there any easier way to do it or I have to run a loop and do it.
Thanks in advance.
I have a structure called BOX with 2 elements. ID and Status.
I have created an object
public NewBox(5) as box
After I process the first element, I want to overwrite the Current element with the next element. Is there any easier way to do it or I have to run a loop and do it.
Thanks in advance.
Can you give more details so that we can determine what you are trying to do. If you have code that is currently doing it please post.
ASKER
Thank u for trying to help me.
newBox(0).Status="Good"
NewBox(1).Status="BAD"
NewBox(2).Status="GOOD"
NewBox(3).Status="Empty"
NewBox(4).Status="Empty"
After I process newBox(0).Status="Good" I want to move NewBox(0).Status = NewBox(1).Status
NewBox(1).Status = NewBox(2).Status and so on.
So the output should be
newBox(0).Status="BAD"
NewBox(1).Status="GOOD"
NewBox(2).Status="Empty"
NewBox(3).Status="Empty"
NewBox(4).Status="Empty"
newBox(0).Status="Good"
NewBox(1).Status="BAD"
NewBox(2).Status="GOOD"
NewBox(3).Status="Empty"
NewBox(4).Status="Empty"
After I process newBox(0).Status="Good" I want to move NewBox(0).Status = NewBox(1).Status
NewBox(1).Status = NewBox(2).Status and so on.
So the output should be
newBox(0).Status="BAD"
NewBox(1).Status="GOOD"
NewBox(2).Status="Empty"
NewBox(3).Status="Empty"
NewBox(4).Status="Empty"
Do you know about a 'queue' ? (Sounds a bit like you might be trying to reinvent it)
https://msdn.microsoft.com/en-us/library/system.collections.queue(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/system.collections.queue(v=vs.110).aspx
ASKER
I have no idea what is the right way to achieve it.
Thanks.
Thanks.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Hi,
Actually I am doing exactly the same thing what u r suggesting. I wanted to know if there is any other shortcut or command available instead of looping thru.
thanks.
Actually I am doing exactly the same thing what u r suggesting. I wanted to know if there is any other shortcut or command available instead of looping thru.
thanks.
I'd say "no". You probably can use some LINQ statement but this is just "syntactic sugar" - it loops anyway behind scenes.
I wanted to know if there is any other shortcut or command available instead of looping thru.
the alternate way to loops is recursion.
NewBox(0).Status="Good"
NewBox(1).Status="BAD"
NewBox(2).Status="GOOD"
NewBox(3).Status="Empty"
NewBox(4).Status="Empty"
ProcessNewBox(NewBox, 0)
....
Sub ProcessNewBox(ByVal NewBox() As Box, ByVal Index As Long, ByVal Size As Long)
' process NewBox(Index)
' check some end condition to avoid infinite calls
' clear the current slot or - better - find out next status
NewBox(Index).Status = "Empty"
....
' increment index (ring)
Index = (Index + 1) Mod Size
' call recursively same function
ProcessNewBox(NewBox, Index, Size)
End Sub
Sara
>>I want to overwrite the Current element with the next element
Keeping the same ID is not replacing in my view. If it is really replacing an element then it still sounds like a queue could be useful. The current description sounds like
process A
copy B to A
copy C to B
copy D to C
copy E to D
(fill E ????)
back to start with Process A
Keeping the same ID is not replacing in my view. If it is really replacing an element then it still sounds like a queue could be useful. The current description sounds like
process A
copy B to A
copy C to B
copy D to C
copy E to D
(fill E ????)
back to start with Process A
the alternate way to loops is recursion.
Recursion is good :). Not really faster than loops. And I remember when I tried to solve a graph problem (years ago) with recursion - computer just died because lack of memory... :)
like a queue could be useful
In a way - yes, no argue But still using a loop...
I'm thinking why do lots of copying when just taking away from the collection will automatically bring the next one to the top for processing. No looping or recursion.
Anyway the person that can really know is the asker of the question.
Anyway the person that can really know is the asker of the question.
just taking away from the collection will automatically bring the next one to the top for processing. No looping or recursion.
if the "next" is on top you either need a loop or recursion to process the next ...
as shown by the Asker, the last slot automatically should be initialized again and - probably - be used for further processing. i assume the intention of the array is to work as a "state machine" where there are rules how to change between states. if so, it can be implemented by using either a (polling) loop or recursion regardless of the container type used.
Sara
ASKER
Thanks!!