LINQ 选择第一行

标签 linq select

如何在不使用 foreach 的情况下选择 linq select 语句中的第一行?

我使用foreach,然后break;但这一定是更好的方法吗?

我喜欢获取第一行的值;再加上检查是否没有找到行。 我的问题是在没有 foreach 语句的情况下获取值。

我所做的是在我的数据表中找到一个值,并且我知道该行是唯一的;所以我喜欢进行选择并获取值;再加上检查是否没有命中以确保安全......:)

这是我现在使用的代码,见下文

谢谢你, rune

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;

foreach ( DataRow o_DataRow in var_QUERY_linq )
{
       vmp_Return_string = o_DataRow.Field<string>( "Myfield_nvarchar" );

       break;
}

最佳答案

只需使用.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
}

关于LINQ 选择第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1512471/

相关文章:

c# - 不支持客户端 GroupBy

mysql - 如何编写条件 A 或 B 为零,但在 MYSQL 中不是两者都为零?

c# - 如何使用 Linq 从 Json 或类对象中查找子元素

c# - 为什么我应该使用 Any 方法而不是 Count?

MySQL - 将单结果查询和多结果查询合二为一

php - Mysql 数据库 - 使用下拉框和搜索字段对数据输出进行排序

jquery - 如何对所选选项的值进行求和?

MySQL GROUP BY 和 SELECT GROUP BY

c# - LINQ:无法将类型 'System.Int32' 转换为类型 'System.Object'

c# - IQueryable<T>.Include() 被忽略