LINQ选择第一行 [英] LINQ SELECT FIRST ROW
问题描述
如何在不使用foreach的情况下选择linq select语句中的第一行?
How can I select first row in a linq select statement without using foreach?
我使用foreach然后中断;但这一定是更好的方法吗?
I use foreach and then break; but it has to be a better way?
我喜欢在第一行中获取值;加上检查是否找不到行. 我的问题是在没有foreach语句的情况下获取值.
I like to get the value in first row; plus check if no row is found. My problem is to get the value without foreach statement.
我要做的是在DataTable中找到一个值,并且我知道该行是uniqe;所以我喜欢进行选择并获得价值;加上检查是否没有击中来确保安全...:)
What I do is to find a value in my DataTable and I know the row is uniqe; so I like to do a select and get the value; plus do a check if there is no hit to be safe... :)
这是我现在使用的代码,请参见下文
This is the code I use now, see below
谢谢你, 符文
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()
Just use .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选择第一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!