如何检查列表中是否已存在某个项目?

时间:2016-03-10 22:14:36

标签: c# .net winforms

if (this.Handle != hwnd && (Constants.GetWindowLongA(hwnd, Constants.GWL_STYLE) & Constants.TARGETWINDOW) == Constants.TARGETWINDOW)
{
    StringBuilder sb = new StringBuilder(100);
    Constants.GetWindowText(hwnd, sb, sb.Capacity);

    Window t = new Window();
    t.Handle = hwnd;
    t.Title = sb.ToString();
    windows.Add(t);
}

我想检查一下,如果项目变量(t)已经在列表窗口中,请不要再次添加它。在行t.Title = sb.ToString();之后检查它是否不存在,然后添加它。

2 个答案:

答案 0 :(得分:2)

if(!windows.Any(window=>window.Handle == t.Handle)){
    windows.Add(t);
}

或者,更好的是,检查方法的开头(虽然我承认我不知道它在做什么。)

if(windows.Any(window=>window.Handle == hwnd)) return;

答案 1 :(得分:2)

您是否尝试过Contains方法?

if (!windows.Contains(t)) { windows.Add(t) }

这可能有效。