如何在不使用 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/