Linq к объектам - выбирают первый объект

Вы используете 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

11
задан Orion Edwards 11 August 2008 в 04:07
поделиться

2 ответа

@FryHard FirstOrDefault будет работать, но помнить, что возвращает пустой указатель, если ни один не найден. Этот код не тестируется, но должен быть близко к тому, что Вы хотите:

var app = Process.GetProcesses().FirstOrDefault(p => p.ProcessName.Contains("MyAppName") && p.MainWindowHandle != IntPtr.Zero);

if (app == null)
    return;

SetForegroundWindow(app.MainWindowHandle);
20
ответ дан 3 December 2019 в 05:14
поделиться

Предположение, который в первых приложениях в качестве примера 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 );
}
0
ответ дан 3 December 2019 в 05:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: