如何以更简洁、更短、更有效的方式编写这个具有空检查的哨兵循环?

问题描述

我使用 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() 该属性。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)