C# 根据第一列的值从listview中删除重复项

C# 根据第一列的值从listview中删除重复项,c#,C#,我试图做的是删除listView中的重复行,但仅当第一列重复时,例如: 姓名/年龄/工作 约翰/24/工程师 汤姆/32/高尔夫球手 约翰/55/科学家 John的名字在这里有两次,我只希望有一次,然后删除所有其他行,这是我到目前为止的基本代码: public void RemoveDuplicates() { for (int i = 0; i < listViewTwitter.Items.Count - 1; i++) { if (listViewTw

我试图做的是删除listView中的重复行,但仅当第一列重复时,例如:

姓名/年龄/工作

约翰/24/工程师

汤姆/32/高尔夫球手

约翰/55/科学家

John的名字在这里有两次,我只希望有一次,然后删除所有其他行,这是我到目前为止的基本代码:

public void RemoveDuplicates() {
    for (int i = 0; i < listViewTwitter.Items.Count - 1; i++)
    {
        if (listViewTwitter.Items[i].Tag == listViewTwitter.Items[i + 1].Tag)
        {
            listViewTwitter.Items[i + 1].Remove();
        }
    }
}
public void RemoveDuplicates(){
for(int i=0;i

我想不出最好的方法,任何帮助都将不胜感激。

下面的代码是我为您编写的示例

为了使我的exmaple更好,首先我创建了一个类:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Job { get; set; }
}
然后我声明了
Person
类的对象列表

private void frmMain_Load(object sender, EventArgs e)
{
    var list = new List<Person>()
    {
        new Person() { Age = 24 , Job = "Engineer", Name = "John" },
        new Person() { Age = 32, Job = "Golfer", Name = "Tom " },
        new Person() { Age = 55, Job = "Scientist",Name = "John" },
    };


    foreach (var person in list)
    {
        ListViewItem item = new ListViewItem(person.Name);
        item.Tag = person;

        listView1.Items.Add(item);
    }
}
private void btnRemoveDupplicates_Click(object sender, EventArgs e)
{
    for (int i=0;i<listView1.Items.Count;i++)
    {

        var person = (Person)listView1.Items[i].Tag;
        for (int j = 0; j < listView1.Items.Count; j++)
        {
            if(
                ((Person)listView1.Items[j].Tag).Name == person.Name && 
                listView1.Items[i].Index != listView1.Items[j].Index)
            {                        
                listView1.Items[j].Remove();
                continue;
            }
        }
    }
}