이 시도 :
void Main()
{
Form form = new Form();
ListView lv = new ListView();
lv.View = View.Details;
lv.Columns.Add(new ColumnHeader() { Name = "ip", Text = "IP Address" });
lv.Columns.Add(new ColumnHeader() { Name = "port", Text = "Port" });
lv.Dock = DockStyle.Fill;
// Tests.
AddItem(lv, "10.0.0.1", String.Empty);
AddItem(lv, "10.0.0.2", String.Empty);
AddItem(lv, "10.0.0.1", "8080");
AddItem(lv, "10.0.0.1", String.Empty);
AddItem(lv, "10.0.0.1", "8080");
form.Controls.Add(lv);
form.ShowDialog();
}
private void AddItem(ListView listView, string ip, string port)
{
var items = listView.Items.Cast<ListViewItem>();
// First subitem starts at index 1.
bool exists = items.Where(item =>
(item.Text == ip && item.SubItems[1].Text == port)).Any();
if (!exists)
{
var item = new ListViewItem(ip);
item.SubItems.Add(new ListViewItem.ListViewSubItem(item, port));
listView.Items.Add(item);
}
else
{
Console.WriteLine("Duplicate: {0}:{1}", ip, port);
}
}
체크는 AddItem()
방법입니다. 요구 사항에 따라 수정하십시오.
포트가 다른 경우에만 중복 IP를 갖고 싶습니다. IP와 포트가 이미 listview에 있다면, 나는 그들을 추가하고 싶지 않습니다. – user2732954