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

时间:2017-01-17 17:08:23

标签: c# linq lambda

让我们考虑以下数据表:

Id      Name     PhoneNo
1       Sam      123654
2       Mike     213654
3       John     998745

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

  int id= gateway.AllTestViews().//Something//(a => a.TestName=="Mike")
    return id;

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

2 个答案:

答案 0 :(得分:5)

使用FirstOrDefault: -

int result = gateway.FirstOrDefault(x => x.Name == "Mike")?.ID ?? 0;

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

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

答案 1 :(得分:3)

您可以使用与Where链接的Select过滤器(以获取ID):

 var result = gateway.Where(x => x.TestName == something).Select(x => x.ID);

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