-
Aug 13th, 2008, 07:18 AM
#1
Thread Starter
New Member
Creating a function that deletes data!
Hi Guys. Im really stuck on this at the moment.
I want to create a function that deletes some specific data that I have entered. The following C# code creates an ArrayList. It then adds a number of “BoxesOfWidgets” to the ArrayList, adding Widgets within each box. I can use VB to create the function, it does not have to be in C#.
Code:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ArrayList colBoxesOfWidgets = new ArrayList();
colBoxesOfWidgets.Add(new BoxOfWidgets("Cardboard"));
((BoxOfWidgets)colBoxesOfWidgets[0]).colWidgets.Add(new Widget("The blue widget", 12));
((BoxOfWidgets)colBoxesOfWidgets[0]).colWidgets.Add(new Widget("The red widget", 15));
((BoxOfWidgets)colBoxesOfWidgets[0]).colWidgets.Add(new Widget("The silver widget", 6));
((BoxOfWidgets)colBoxesOfWidgets[0]).colWidgets.Add(new Widget("The green widget", 52));
colBoxesOfWidgets.Add(new BoxOfWidgets("Metal"));
((BoxOfWidgets)colBoxesOfWidgets[1]).colWidgets.Add(new Widget("The gold widget", 9));
((BoxOfWidgets)colBoxesOfWidgets[1]).colWidgets.Add(new Widget("The orange widget", 115));
((BoxOfWidgets)colBoxesOfWidgets[1]).colWidgets.Add(new Widget("The pink widget", 1));
colBoxesOfWidgets.Add(new BoxOfWidgets("Metal"));
((BoxOfWidgets)colBoxesOfWidgets[2]).colWidgets.Add(new Widget("The grey widget", 12));
((BoxOfWidgets)colBoxesOfWidgets[2]).colWidgets.Add(new Widget("The black widget", 15));
((BoxOfWidgets)colBoxesOfWidgets[2]).colWidgets.Add(new Widget("The white widget", 19));
((BoxOfWidgets)colBoxesOfWidgets[2]).colWidgets.Add(new Widget("The brown widget", 60));
((BoxOfWidgets)colBoxesOfWidgets[2]).colWidgets.Add(new Widget("The peach widget", 16));
GetRidOfTheSmallWidgets(colBoxesOfWidgets);
}
public ArrayList GetRidOfTheSmallWidgets(ArrayList colBoxesOfWidgets){
//Place code here
//It should remove all widgets that have lengths lower than 20.
return colBoxesOfWidgets;
}
}
class BoxOfWidgets
{
public string boxType;
public ArrayList colWidgets;
public BoxOfWidgets(string newBoxType)
{
boxType = newBoxType;
colWidgets = new ArrayList();
}
}
class Widget
{
public string name;
public float length;
public Widget(string newName, float newLength)
{
this.name = newName;
this.length = newLength;
}
}
As you can see I need to get rid of all of the widgets with lengths less than 20. I need a method to search through the ArrayList of boxes, and remove the small widgets from them.
Please help! Anything will be really appreciated!
-
Aug 13th, 2008, 08:07 AM
#2
Re: Creating a function that deletes data!
What version of VS are you using?
-
Aug 13th, 2008, 09:10 AM
#3
Re: Creating a function that deletes data!
Isn't is just as simple as looping through the ArrayList items and checking widgets length is less than 20 and removing it.
Or you are looking for something else?
-
Aug 13th, 2008, 10:14 AM
#4
Thread Starter
New Member
Re: Creating a function that deletes data!
Im not really using a VB software at the moment.. just need to figure this code out on paper and Im really struggling. I need to first add the widgets.. and then delete it.
-
Aug 13th, 2008, 10:19 AM
#5
Re: Creating a function that deletes data!
Well, the simple way is what Pradeep suggests. Loop through them and delete the ones < 20.
If you were using VS2005, I'd suggest using a Generic List rather than an ArrayList since they're much more versatile.
If you were using VS2008, I'd tell you how you could do it using LINQ.
-
Aug 13th, 2008, 10:38 AM
#6
Thread Starter
New Member
Re: Creating a function that deletes data!
The problem is.. this is not code I have created myself so I have no idea how to loop in VB! ( I coluld do it in PL/SQL, but not in VB!)
-
Aug 13th, 2008, 11:27 AM
#7
Re: Creating a function that deletes data!
so why post on a VB forum if your not intending to do it in VB :S
-
Aug 15th, 2008, 05:29 PM
#8
Thread Starter
New Member
Re: Creating a function that deletes data!
No I meant that I'd be able to do it in PL/SQL.. but I need it done in VB and have no idea how to get it done
-
Aug 15th, 2008, 09:44 PM
#9
Re: Creating a function that deletes data!
If you ARE going to get it done, you will have to choose a version of the language first. As long as you choose 2005 or newer, then ArrayList is not the way to go. List (of BoxOfWidgets) would be the right way to do this.
The loop would look something like this, assuming a List called WidgetList:
Code:
Dim x as integer
For x = WidgetList.Count-1 to 0 step -1
If WidgetList(x).Length < 20 then
WidgetList.RemoveAt(x)
End if
Next
That snippet makes some pretty broad assumptions, such as the assumption that Length is a property containing the length. The loop runs from the top down to 0 because you will be removing items from the list. This should screw up the loop indexing if the loop went from bottom to top (though somebody will correct me if Lists don't work like arrays in this manner, I've never tested it, but Lists are different animals).
My usual boring signature: Nothing
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|