从ListView列转换为List中删除重复项

时间:2015-09-10 23:23:11

标签: c# linq listview casting distinct

一直坚持应该简单的事情,任何人都可以看到这个问题吗?

这个想法是这样的:我在ListView中有一个列,我正在转换为List,我只想要Distinct(没有重复)值......

我认为这应该有用,但我得到了所有的值,包括重复:

List<string> list = new List<string>();
list.AddRange(listView1.Items.Cast<ListViewItem>().Select(lvi => lvi.SubItems[2].Text.Distinct().ToString()));

2 个答案:

答案 0 :(得分:0)

var uniqueStrings = listView1.Items
  .Cast<ListViewItem>()
  .GroupBy(lvi => lvi.SubItems[2].Text)
  .Select(g => grp.First().SubItems[2].Text)
  .ToList();

答案 1 :(得分:0)

尝试使用set而不是list,HashSet会很好,它不会有重复。