2016-05-13 9 views
-1

ich eine Sammlung gemacht habe Objekte der Klasse zu speichern sendviaemailWie Daten von Sammlung (Objektsammlung) anzuzeigen

public List<SendViaEmail> email = new List<SendViaEmail>(); 

Die Klasse hat ein String-Variable speichern EMAILID. Ich füge ein Objekt zur Listen-E-Mail hinzu.

email.Add(s); 

Nun ist das s-Objekt ist vom Typ E-Mail-Klasse und enthält eine per E-Mail (für zB [email protected])

Wenn ich foreach-Schleife durch alle Werte im Objekt iterieren und fügen Sie alle die emailids in listbox aber keine Daten in Listenfeld angezeigt

SendViaEmail s = new SendViaEmail(); 
for (int i = 0; i < s.email.Count(); i++) 
{ 
    listBox1.Items.Add(s.email); 
} 

ich habe versucht, das Debuggen und in der s-Objekt der e-Mail = null. Ich glaube nicht, dass der Code zum Speichern der E-Mail-Adresse in der Sammlung funktioniert, weil ich beim Abrufen von Daten einen Nullwert erhalte. Ich habe die E-Mail-Adresse in der Zeichenfolge. Wie String in der Sammlung zu speichern, die

Antwort

0

Versuchen nur Objekte der Klasse halten können die DisplayMember Eigenschaft listBox1 zu "" und dann "email" Einstellung.

listBox1.DisplayMember = ""; 
listBox1.DisplayMember = "email"; 

Dies sollte die Ansicht aktualisieren.

+0

Ich band es nicht work.But wird der Code korrekt .Ich bedeuten alle E-Mails in der Sammlung –

0

Verwenden Sie eine foreach Schleife anstelle einer for.

foreach (string email in s.email) 
{ 
    listBox1.Items.Add(email); 
} 

Wenn Sie eine for Schleife verwenden möchten, müssen Sie den Index verwenden, um den aktuellen Eintrag zu erhalten.

for (int i = 0; i < s.email.Count(); i++) 
{ 
    listBox1.Items.Add(s.email[i]); 
} 
0

Sie fügen die Liste mehrmals, anstatt jedes seiner Element hinzugefügt wird.

Dies ist, was Sie tun sollen:

SendViaEmail s = new SendViaEmail(); 
for (int i = 0; i < s.email.Count(); i++) 
{ 
    listBox1.Items.Add(s.email[i]); 
} 

Alternativ Sie foreach auch nutzen könnten:

SendViaEmail s = new SendViaEmail(); 
foreach (var item in s.email) 
{ 
    listBox1.Items.Add(item); 
} 
+0

@AamirNawab gespeichert sind, Sie sollten mehr Kontext bereitstellen.Mit dem, was Sie uns in der Frage gegeben haben, gibt es wenig zu tun. – Xiaoy312

1

Zunächst sollten Sie eine typisierte Liste werden.

Das heißt, die List nur Elemente des SendViaEmail Objekt enthalten kann.

public List<SendViaEmail> email = new List<SendViaEmail>(); 

Sie können dann SendViaEmail Objekte hinzufügen.

SendViaEmail s = new SendViaEmail(); 
email.add(s); 

Ihre Struktur Schleife können jetzt die Vorteile von foreach nehmen:

foreach(SendViaEmail s in email){ 
    listBox1.Items.Add(s.email); 
} 
Verwandte Themen