将Listview项存储到列表中并检索子项

时间:2017-11-18 18:40:28

标签: c#

我试图将我的listview存储到一个列表中,该列表包含两列并将其打印到文本中。我能够在某种程度上这样做......但我似乎无法在第二栏中看到子项目。到目前为止,这就是我所拥有的:

for (int i = 0; i < netchart.Items.Count; i++)
{
    netchart.Items[i].Selected = true;
}

List<string> val = netchart.SelectedItems
                               .Cast<ListViewItem>()
                               .Select(listViewItem => listViewItem.Text)
                               .ToList();

if (val != null)
{
    foreach (var wid in val)
        output.Text = output.Text + "\n" + wid.ToString() ;
}

for (int i = 0; i < netchart.Items.Count; i++)
{
    netchart.Items[i].Selected = false;
}

我对C#和一般编程都非常陌生,所以任何帮助都会有很长的路要走。

1 个答案:

答案 0 :(得分:1)

您的选择陈述对我来说是正确的。但是,由于你必须循环遍历列表以创建最终的字符串,我建议你将所有内容重构为一个循环。这将为您提供对每个元素发生的更多控制,您应该能够检测到问题:

StringBuilder sb = new StringBuilder();

foreach (ListViewItem i in netchart.SelectedItems)
    sb.Append("\n").Append(i.Text); // Alternatively i.ToString() if appropriate.

output.Text = sb.ToString();