如何用更简洁,更短而有效的方式编写具有空检查的哨兵循环?

我用null作为一个哨兵/旅行价值突破foreach:

public static DataTable ExecuteQuery(string sql)
{
    var conn = new SqlConnection(EnvironmentVariables.GetDbConnectionString());
    var adapter = new SqlDataAdapter(sql, conn);
    var table = new DataTable();
    adapter.Fill(table);
    return table;
}
private VacantSummaryPage SelectPropertyFromDb(string sql)
{
    VacantProperty vacantProperty = null;
    List<VacantProperty> vacantProperties = GetProperties();
    foreach (DataRow row in SqlServer.ExecuteQuery(sql).Rows)
    {
        vacantProperty = vacantProperties.Find(v => v.GetTitle().Contains(row["PartialStreetAddress"].ToString()));
        if (vacantProperty != null) break;
    }
    vacantProperty.Select();
    return new VacantSummaryPage(driver);
}

一旦vacantProperty被匹配,它将不再为空,脱离循环和Select()该属性这就是它的作用。

奥利维尔·罗吉尔(Olivier Rogier)

您可以使用LINQ理解查询(类似于SQL的语法)编写“单行”指令:

private VacantSummaryPage SelectPropertyFromDb(string sql)
{
  var query = from row in SqlServer.ExecuteQuery(sql).Rows.Cast<DataRow>()
              from property in GetProperties()
              where property.GetTitle().Contains(row["PartialStreetAddress"].ToString())
              select property;
  vacantProperty = query.FirstOrDefault();
  if ( vacantProperty != null )
    vacantProperty.Select();
  return new VacantSummaryPage(driver);
}

First如果未找到,则仅使用将引发异常,因此FirstOrDefault可以控制未发现的情况,除非首选例外控制。

在这里查询本身被推迟,例如在调用First / FirstOrDefault或ToList()时对它进行评估。

LINQ延迟执行(或立即执行)

延迟执行LINQ查询

LINQ:为什么将其称为“理解语法”

LINQ(C#)中的查询语法和方法语法

LINQ查询语法(综合)

LINQ方法语法(Lambda)

很高兴知道

TypedTableBase使用DataSet中允许直接实现IEnumerable<DataRow>,因此也强类型DataSet

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何以更有效,更短的方式编写Javascript

来自分类Dev

JSON解析抛出零错误,而有效载荷没有空值

来自分类Dev

更短,更轻松,更有效的数据保存方式?

来自分类Dev

如何通过循环改进此代码,使其更短,更有效?

来自分类Dev

从列表中删除具有空属性的对象的最有效方法

来自分类Dev

如何检查集合是否具有空引用

来自分类Dev

有没有更简洁或更短的方式来显示这些has_many关系?

来自分类Dev

检查具有空数据的节点

来自分类Dev

检查具有空数据的节点

来自分类Dev

有效的if语句循环方式

来自分类Dev

优雅而有效的方式来修改std :: array的所有元素

来自分类Dev

有一种更短/优雅/有效的方式来写这个吗?

来自分类Dev

Python:文件中的字母数,简单而有效的方式

来自分类Dev

编写按字典顺序添加新元素的链接函数的更短/更有效的方法

来自分类Dev

如何检查div中是否有任何span元素具有空值

来自分类Dev

有没有更干净,更短的方式在python中编写此条件?

来自分类Dev

如何用正则表达式检查有效的小数点位数?

来自分类Dev

如何用正则表达式检查有效的小数点位数?

来自分类Dev

如何编写更简洁的 for-of 循环

来自分类Dev

如何编写包含具有空数据行的MySQL查询?

来自分类Dev

编写此查询的更有效方式?

来自分类Dev

如何在Javascript中编写一种有效的方式来处理匹配模式?

来自分类Dev

如何检查QImage是否有效?

来自分类Dev

如何检查日期是否有效?

来自分类Dev

如何检查有效的URL地址?

来自分类Dev

如何检查len是否有效

来自分类Dev

如何检查分支有效

来自分类Dev

如何检查len是否有效

来自分类Dev

如何检查SSHD是否有效?

Related 相关文章

热门标签

归档