Вы используете NSNumber.
У него есть методы init ... и number ..., которые берут booleans, так же, как целые числа и т. д.
Из Ссылка на NSNumber :
// Creates and returns an NSNumber object containing a
// given value, treating it as a BOOL.
+ (NSNumber *)numberWithBool:(BOOL)value
и:
// Returns an NSNumber object initialized to contain a
// given value, treated as a BOOL.
- (id)initWithBool:(BOOL)value
и:
// Returns the receiver’s value as a BOOL.
- (BOOL)boolValue
@FryHard FirstOrDefault будет работать, но помнить, что возвращает пустой указатель, если ни один не найден. Этот код не тестируется, но должен быть близко к тому, что Вы хотите:
var app = Process.GetProcesses().FirstOrDefault(p => p.ProcessName.Contains("MyAppName") && p.MainWindowHandle != IntPtr.Zero);
if (app == null)
return;
SetForegroundWindow(app.MainWindowHandle);
Предположение, который в первых приложениях в качестве примера IEnumerable, Вы могли использовать.Count и.FirstOrDefault свойства для получения единственного объекта, который Вы хотите передать SetForegroundWindow.
var apps = from app in Process.GetProcesses()
where app.ProcessName.Contains( "MyAppName" ) && app.MainWindowHandle != IntPtr.Zero
select app;
if (apps.Count > 0)
{
SetForegroundWindow(apps.FirstOrDefault().MainWindowHandle );
}