如何显示集合数据(对象集合)

时间:2016-05-13 01:23:53

标签: c#

我创建了一个集合来存储sendviaemail类的对象

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

该类有一个字符串变量来存储emailid。我在列表电子邮件中添加了一个对象。

email.Add(s);

现在s对象是类型类型的电子邮件,它包含一封电子邮件(例如sad@gmail.com)

当我使用foreach循环迭代对象中的所有值并在列表框中添加所有emailid但列表框中没有显示数据时

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

我尝试调试并在s对象中使用email = null。 我不认为在集合中存储电子邮件地址的代码是有效的,因为我在检索数据时获得了null值。 我有字符串中的电子邮件地址。 如何在集合中存储字符串,该集合只能包含类

的对象

4 个答案:

答案 0 :(得分:1)

首先,您应该使用类型列表。

这意味着List只能包含SendViaEmail对象的元素。

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

然后,您可以向其添加SendViaEmail个对象。

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

您的循环结构现在可以利用foreach

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

答案 1 :(得分:0)

尝试将moment.duration(day14.diff(serverTime)).minutes(); moment.duration(day14.diff(serverTime)).hours(); 的{​​{1}}属性设置为DisplayMember,然后listBox1

""

这应该刷新视图。

答案 2 :(得分:0)

使用foreach循环而不是for

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

如果要使用for循环,则需要使用索引来获取当前项目。

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

答案 3 :(得分:0)

您要多次添加列表,而不是添加每个元素。

这是你应该做的:

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

或者,您也可以使用foreach

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