【发布时间】:2017-06-04 11:06:49
【问题描述】:
我确定以前有人问过这个问题,但我一直没能找到它。 我想根据最终由用户确定的几个标准来过滤表名列表。以下是我当前的代码。
private List<TableMetaData> tableMetaData = new List<TableMetaData>();
public class TableMetaData
{
public string TableName;
public string ReferenceTableName;
public bool IsAuditTable;
public bool IsSyncTable;
public bool IsView;
}
public List<string> GetTableNames(TableMetaData filterData)
{
List<string> filteredNames = tableMetaData
.Where(table => (table.IsAuditTable == filterData.IsAuditTable)
&& (table.IsSyncTable == filterData.IsSyncTable)
&& (table.IsView == filterData.IsView))
.Select(table => table.TableName).ToList();
return filteredNames;
}
我仍然需要在过滤操作中包含 TableMetaData.TableName 和 TableMetaData.ReferenceTableName。但是,这些值可能为空,在这种情况下,它们不会在过滤器中使用。我认为必须有比为每个条件编写单独的 linq 语句更简单的方法?
提前谢谢你。
【问题讨论】: