Я уверен, что этот вопрос задан раньше, но я не смог его найти. Я хочу отфильтровать список имен таблиц в зависимости от нескольких критериев, которые в конечном итоге будут определены пользователем. Следующий мой текущий код.Linq фильтр по нескольким значениям, которые могут быть или не быть
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 для каждого условия?
Заранее спасибо.
Это будет работать хорошо для меня. Я думаю, что это решение более читаемо, чем использование комбинации и/или операторов. Спасибо. – user1165224
@ user1165224 Рад, что это помогло. –