I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
public MultiArray(uint dim) { ArrayX = new ArrayList[dim]; for (int idx = 0; idx < ArrayX.Length; idx++) ArrayX[idx] = new ArrayList(); }
Synes godt om
Slettet bruger
03. august 2006 - 22:09#15
super, nu virker det skam :) kan i hvert fald smide værdier ind.
Jeg havde sådan en før:
public Object GetItemAt(int Index, int Column) { Object ReturnValue = null;
switch (Column) { case 1: ReturnValue = Array1[Index]; break; case 2: ReturnValue = Array2[Index]; break; case 3: ReturnValue = Array3[Index]; break; case 4: ReturnValue = Array4[Index]; break; }
return ReturnValue; }
skal bruge noget i den retning jo.. kan ikke rigtig se logikken i det med et arraylist i et arraylist. Skal have lave flere funktioner, men hvis du ville må du meget gerne vise hvordan jeg så hiver værdier ud, fra den forskellige columns via index
Column referere til det implicitte søjlenavn i Array1, Array2, Array3 og Array4. Det er først når man indføre et indeks på søjlen at det starter med 0.
... men dine cases ovenfor vil nu bare resultere i at GetItemAt returnere null, med mindre man altså antager at søjlen nr. 1 har column-nr. 13.
Og det kan vi hurtigt blive enige om er uhensigtsmesigt...
Om så 0-3 eller 1-4 er bedst, er der sikkert mange der kan diskutere om... og på det punkt tillader jeg mig at være pasiv... med kun en ting at sige, og det er at man nok bør sigte efter hvad der er normen i det miljø man programmere i (i det her tilfælde C#/.NET , hvor 0-3 vil være normen)...
Men at man ikke ville kunne finde gode argumenter for 1-4 indexses... det vil være lidt naivt at udelukke tror jeg...
I sidste ende så bare fordi kode måske ikke er logisk for mange, ikke lig med at det er fejlkode :P...
05/08-2006 01:28:40> Jeg kan kun erklære mig enig :^)
... og et svar :^)
Synes godt om
Slettet bruger
05. august 2006 - 13:13#24
Det virker faktisk super godt, har fået lavet en hel klasse til at manipulere det dynamiske arraylist. Præcis det jeg ville!:)
Mangler lige en ting, som Add funktionen, skal jeg bruge en Insert funktion, der indsætter en række ved et bestemt index, ville lige hører om du mener det her er den rigtige måde at gøre det på?
public void InsertAt(int Index, params Object[] arg) { for (int idx = 0; idx < arg.Length; idx++) { if (idx >= ArrayX.Length) break; ArrayX[idx].Insert(Index, arg[idx]); } }
og lige ledes med clear funktionen:
public void Clear() { for (int idx = 0; idx < ArrayX.Length; idx++) { ArrayX[idx].Clear(); } }
Der er måske et par ting jeg ikke helt forstår ved den klasse... og som jeg måske ville lave anderledes...
public int Count() { return ArrayX[1].Count; }
Jeg ville måske have antaget at den skulle returnere det samlede antal elementer, og ikke antal colloner? Altså:
public int Count() { int cnt = 0; foreach(ArrayList al in ArrayX) cnt += al.Count; return cnt; }
Og så måske tilføje count på Collums/Rows...
public int CountRow(int row) { return ArrayX[row].Count; }
----
en anden ting jeg ikke helt forstår er Insæt vs Remove
når du insætter insætter du et Array spredt ud over dine forskellige ArrayLists... Men både Remove og Contains kigger aldrig ud over den første liste... Sådan som jeg lige kan overskue koden i black&white Givet et eks:
Add({1,2,3}); Add({4,5,6}); Add({7,8,9});
Må give:
1 4 7 2 5 8 3 6 9
Nu prøver vi så at kalde:
Remove(6); og nu ser det således ud:
1 4 7 2 5 8 3 6 9
Intet blev fjernet... Til trods for at Contains(2,6); giver true... så prøver vi med: Remove(4);
Og vi får
1 7 2 8 3 9
Det er ikke helt logisk for mit hoved hvertfald... foruden at der nok skal noget Exception Casting ect til... Så man er klar over når man prøver at tilføje et Array med flere elementer end der er collums... (Frem for bare at smide resten væk)...
Kan godt være jeg bare har misforstået ideen med det her... men var da et par ting jeg studsede over...
Synes godt om
Slettet bruger
05. august 2006 - 18:57#28
Hvor starter jeg :)
Count() funktionnen skal retunere hvor mange rows der er i mit array, ikke columns.
Så vidt jeg har testet virker Add og Remove til at gøre de rigtige ting.. jeg lavede et projekt for at teste det, og det har jeg ikke her, så hvis jeg skal være sikker må det vente til på mandag
Ser du hvert enkelt Array List som en Column, eller som en Row? (Prøver lige at lave en tegning senere)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.