如何根据C#中的条件使用Linq或Lambda获取Id(int)?

FaH*_*HaD 0 c# linq lambda

让我们考虑以下数据表:

Id      Name     PhoneNo
1       Sam      123654
2       Mike     213654
3       John     998745
Run Code Online (Sandbox Code Playgroud)

我需要来自此数据列表的Mike的Id并返回int值.我使用AllTestViews方法从数据库中检索所有这些数据作为项目列表.

  int id= gateway.AllTestViews().//Something//(a => a.TestName=="Mike")
    return id;
Run Code Online (Sandbox Code Playgroud)

有没有办法获得此ID或我必须使用SQL查询此问题?谢谢

Ian*_*Ian 5

您可以使用WhereSelect(获取 ID)链接的过滤器,如下所示:

 var result = gateway.Where(x => x.TestName == something).Select(x => x.ID);
Run Code Online (Sandbox Code Playgroud)

注意:您只需将上述条件 ( x.TestName == something)调整为适合您需要的条件过滤器。


Rah*_*ngh 5

使用FirstOrDefault: -

int result = gateway.FirstOrDefault(x => x.Name == "Mike")?.ID ?? 0;
Run Code Online (Sandbox Code Playgroud)

如果您不使用C#6,则需要在访问Id之前检查空值: -

var firstObj= geteway.FirstOrDefault(x => x.Name == "Mike");
if(firstObj != null)
{
    //fetch Id
}
Run Code Online (Sandbox Code Playgroud)