Laden...

Arrayliste mit Strings bis zu einem bestimmten Wert auslesen

Erstellt von Gabriel vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.401 Views
Thema geschlossen
G
Gabriel Themenstarter:in
24 Beiträge seit 2011
vor 12 Jahren
Arrayliste mit Strings bis zu einem bestimmten Wert auslesen

Hallo,

für viele wird dieses Problem einfach sein und ich habe wirklich probiert es alleine zu lösen, joedoch komme ich einfach nicht mehr voran...

Ich habe 2 Arraylisten, in der einen werden Werte für die X-Achse Frequenzen eingeschrieben in der anderen Liste stehen Werte für die Y-Achse. Diese werden von einem Messempfänger als String gesendet und dann "getrimmt"

valuearray = values.Split(',');

                for (int j = 1; j < this.valuearray.Length; j++)
                {
                    if ((valuearray[j] == "-2.14738E+06") || (valuearray[j] == "-2.14738E+06\n"))
                    {
                        valuearray[j] = "0.00000E+00";
                    }
                    try
                    {
                        double tempint;
                        double.TryParse("" + this.valuearray[j], NumberStyles.Any, CultureInfo.InvariantCulture, out tempint);
                        this.myarraylist.Add(tempint);
                    }
                    catch
                    {

                    }

Der Messempfänger sendet immer die aktuellen Werte aus dem Puffer und füllt die leeren Werte der Liste mit Nullen aus. Da die Zahlen wie oben zu sehen auch Nullen enthalten können, kann ich ja nicht die "0" trimmen.

Weiß Jemand, wie ich bis zur ersten Null die Werte zählen kan ?

Danke vielmals

schönen Freitag

Gabriel

G
13 Beiträge seit 2008
vor 12 Jahren

ich weiß nicht genau ob ich verstehe was du genau meinst. Ich verstehe dich so:

Liste[1,3,3,2,0,0] -> gibt 4 weil 4 Elemente nicht 0 sind?

dazu müsten aber folgende Prämisse gemacht werden:
Die Liste ist so geordnet, das die nullen am ende stehen.

aber dann kannst du einfach:


list<string> values;
bool zeroFound = false;
int listPosition = 0;
int count = 0;
while (not zerroFound && values.count > i)
{
    if (values(i) == "0")
       {
         zeroFound = true;
       }
         else count++;
}


ODER:

foreach var currentItem in List
{
if (currentItem != "0") count++
}

G
Gabriel Themenstarter:in
24 Beiträge seit 2011
vor 12 Jahren

Hallo Garek,

manchmal sieht man den Wald vor lauter Bäumen nicht!

Vielen Dank

Gabriel

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo Gabriel,

aus dem Titel "ArrayList": ArrayList gehört in die Mottenkiste und sollte wie alle untypisierten Collections aus System.Collections nicht mehr benutzt werden. Verwende stattdessen List<T> und alle anderen typisierten Collections aus System.Collections.Generic.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

C
252 Beiträge seit 2007
vor 12 Jahren

Mittels FindIndex sollte das gnaze ja noch einfacher gehen und man spart sich die Schleife.

Thema geschlossen