webForumDet fria alternativet

Sortera och ta bort dubbletter i 2-dimensionell array

.NET

1 svar · 484 visningar · startad av mrblonde

Medlem sedan aug. 20012 349 inlägg
Frågan#1

Hej!

Har en 2-dimensionell Array som är uppbyggd såhär:

vArray(x,y)

x = "rad" dvs rad index
y = 0 eller 1 och innehåller ett string fält.

Arrayen kan även innehålla tomma "rader".

Ex på fylld Array:
vArray(0,0) = "sträng1"
vArray(0,1) = "sträng2"

vArray(1,0) = "sträng1"
vArray(1,1) = "sträng2"

vArray(2,0) = ""
vArray(2,1) = ""

vArray(3,0) = "sträng1"
vArray(3,1) = "sträng3"

Ovanstående array skall "renas" från tomma rader (2,0) och (2,1) och dubletter skall bort där det är dubblett på hela raden. Dvs (0,0)(0,1) är en dubeltt till (1,0)(1,1) men sista raden (3,0)(3,1) är INTE en dublett iom att (3,1) är en ny sträng.

Hänger ni med, båda fälten är "nyckeln" så att säga.

Har suttit och pillat med olika sorteringar och så men hittar ingen för en 2 dimensionell och mitt huvud får inte ihop det.

Tacksam för all hjälp!

Tillägg: Det är VBA scriptkod som exekveras i runtime och arrayen kan innehålla 100 000 tals rader. Så det går inte med någon variant som scannar hela arrayen om och om igen...

Medlem sedan aug. 20012 349 inlägg
#2

slog ihop den till en endimensionell med ett "¤" tecken emellan och använde den här algoritmen för att sortera och ta bort dubletter. Sedan splittade jag upp arrayen igen.

248 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)