나는 linq에 대해 거의 아무것도 모릅니다.개체에 Linq - 첫 번째 개체를 선택하십시오
나는이 일을 해요 : 그 기준과 일치하는 모든 실행중인 프로세스 나를 얻을 수
var apps = from app in Process.GetProcesses()
where app.ProcessName.Contains("MyAppName") && app.MainWindowHandle != IntPtr.Zero
select app;
합니다.
그러나 첫 번째 방법을 얻는 방법을 모르겠습니다. 내가 인터넷에서 찾을 수있는 예는 내가 다소 추한 나를 파업이
var matchedApp = (from app in Process.GetProcesses()
where app.ProcessName.Contains("MyAppName") && app.MainWindowHandle != IntPtr.Zero
select app).First();
을 할 필요가 의미하는 것, 그리고 일치하는 프로세스가 존재하지 않는 경우도 예외가 발생합니다. 더 좋은 방법이 있습니까?
실제로 첫 번째 일치 항목을 찾기 위해 노력하고, 나는 또한 나 같은 추하고 끔찍한 파업이 솔루션을 마련했습니다
거기에 SetForegroundWindow
를 호출하고있어
UPDATE, 하지만 위보다. 어떤 아이디어? 그 첫 번째 예에서 애플 리케이션을 가정
는var unused = from app in Process.GetProcesses()
where app.ProcessName.Contains("MyAppName") && app.MainWindowHandle != IntPtr.Zero
select SetForegroundWindow(app.MainWindowHandle); // side-effects in linq-query is technically bad I guess
인 중복입니다. 어떻게이를 확장 메소드가 아닌 쿼리로 넣을 수 있습니까? –
@Quintin FirstOrDefault에 대한 "키워드"구문이 없습니다. 확장 메서드를 사용해야합니다. –
글쎄,'(query) .FirstOrDefault()'를 사용할 수는 있지만, sentax 확장 메소드는 읽기 쉽다. imo –