Hej! På vilket sätt fungerade det inte? Felmeddelande? Är det verkligen null-värden? Hur skapar du din array? Vilken datatyp är det? string[] array = new string[20]; har svårt att tro att det inte skulle fungera, men ifall du använder .NET 2.0 så kan du ju göra så här den loopar inte in dom tomma elementen, felet är bara det att där du har ett null så sätter du inte in nåt värde i den nya arrayen, och sedan loopar du vidare. Justerar koden enligt Simons inlägg eftersom jag inte har något bättre för mig :-) :Array
Jag har en array med 20 fält. Men 3 av fälten är null och jag vill göra en ny array med de 17 fält som innehåller värden.
Testade en enkel lösning med en if-sats if(array[x]!=null) och sen loopa in de fälten som går igenom i en ny array.
Men det ville sig inte.
Någon som har ett förslag?Sv: Array
/JohanSv:Array
array[0]="bla";
array[1]="blalba";
osv
osv
array[8]=null;
string[] nyarray = new string[17];
for(int j=0;j<17;j++)
{
if(array[j]!=null)
{
nyarray[j]=array[j];
}
}
Felet är att den loopar in dom tomma fälten i den nya arrayen.
Hoppas du förstår vad jag menar.Sv: Array
string[] thing = { "foo", "bar", null, "baz" };
string[] other = Array.FindAll(thing, delegate(string value) {
return value != null;
});
och sen har du alltså alla icke null värden i other.
Sv: Array
Du måste använda ett index för den gamla arrayen och ett annat index för den nya.Sv:Array
<code>
string[] array = new string[20];
array[0]="bla";
array[1]="blalba";
osv
osv
array[8]=null;
string[] nyarray = new string[17];
int count=0;
for(int j=0;j<array.length;j++)
if(array[j]!=null)
nyarray[count++]=array[j];
</code>