LINQ选择第一行 [英] LINQ SELECT FIRST ROW

查看:80
本文介绍了LINQ选择第一行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆