ВЫБОР LINQ ПЕРВАЯ СТРОКА

Я смотрю на F# в данный момент также, и я использую книжный F# Эксперта, который я нахожу довольно полезными. Я сокращаю к преследованию довольно быстро, но если Вы не новичок, не трудно следовать за imo.

17
задан Michael La Voie 3 October 2009 в 21:02
поделиться

4 ответа

Просто используйте .FirstOrDefault ()

var var_QUERY_linq = (
    from vm_TABLE_PK in vco_DataTable_PK.AsEnumerable()
    where vm_TABLE_PK.Field<Int32>( "MyField_Int32" ) == vmp_ROW_Counter_Int32
    select vm_TABLE_PK).FirstOrDefault();

if(var_QUERY_linq != null)
{
    //There is a record
}
40
ответ дан 30 November 2019 в 10:49
поделиться

Я предполагаю, что MyField - это поле, в котором вы хотите получить значение

var result = vm_Table_Pk.DefaultIfEmpty().First().MyField;

. Вы также можете установить результат по умолчанию, отличный от NULL. Например:

var result = vm_Table_Pk.DefaultIfEmpty("Missing").First().MyField;

И не волнуйтесь, Intellisense поможет вам в этом.

1
ответ дан 30 November 2019 в 10:49
поделиться

Я столкнулся с проблемой порядка элементов (OrderBy), когда я использую FirstOrDefault для поиска первого элемента в списке.

Я бы посоветовал вам использовать TAKE, чтобы получить первый item:

var_QUERY_linq.Take(1).FirstOrDefault()

* По возможности всегда используйте профилировщик sql для проверки запроса, отправляемого на сервер SQL.

3
ответ дан 30 November 2019 в 10:49
поделиться

.First () примет только первое или .Single () примет первое и вызовет исключение, если их больше

4
ответ дан 30 November 2019 в 10:49
поделиться
Другие вопросы по тегам:

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