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();
之后检查它是否不存在,然后添加它。
答案 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) }
这可能有效。