通过linq查询时从表中获取特定列值

时间:2016-11-29 03:38:31

标签: c# linq

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="eball">
  <p class="textbox"></p>
</div>
  1. 当上述查询运行时,它将获取表行的完整列表 当条件满足时。我只想要一个特定的列值 var Sent = request.Transactions.First(x => x.isSent == "4");
  2. 我是否还可以创建一个if语句来检查Date_Sent是否为空 不是吗?

1 个答案:

答案 0 :(得分:2)

First返回集合类型的项目。简单访问它的属性。

var sent = request.Transactions.FirstOrDefault(x => x.isSent=="4")?.Data_Sent;

If(sent == null) { }

见两件事:

  • 我建议您改用FirstOrDefault。如果序列中没有项匹配谓词,它不会抛出异常。

  • 使用?.访问该媒体资源。它被称为Null Propagation

如果您确实想要使用.Select,那么在不创建临时匿名对象或将其分解为单独命令的情况下使用更好的方法就是使用查询语法,如下所示:

var sent = (from item in request.Transactions
            where item.isSent =="4"
            select Sent_Data).FirstOrDefault()

顺便提一下,我建议在C#

中查看命名约定