Допустим, у меня есть список классов с именем Filter
public class Filter
{
[JsonProperty("field")]
public string ColumnName { get; set; }
[JsonProperty("value")]
public string ColumnValue { get; set; }
[JsonProperty("operator")]
public object Operator {get; set;}
public override string ToString()
{
return String.Format("{0} in ('{1}')", this.ColumnName, this.ColumnValue);
}
}
Мне нужно, чтобы у меня был список фильтров, в которых имя столбца могло бы совпадать.
Таким образом, я мог иметь экземпляр ColumnName "LoanNumber" несколько раз по одному для каждого экземпляра класса в Списке. Каждый LoanNumber будет иметь совершенно другое значение. Поэтому мне нужно собрать все значения и поместить их в один LoanNumber для строки предложения In.
Как я могу просмотреть список фильтров и построить строку, которая выглядит следующим образом
string where = "LoanNum in (1234,456, 55676) and Dates in (01/01/2019, 01/02/2019)";
Пока у меня проблемы с отображением всех данных, как показано выше
private string CreateWhereClause(List<Filter> filter)
{
StringBuilder sb = new StringBuilder();
foreach(var f in filter)
{
if (!sb.ToString().Contains(f.ColumnName))
{
sb.Append(f.ToString() + " AND ");
}else
{
sb.Append(f.ToString() + " AND ");
}
}
sb.Remove(sb.Length - 4, 4);
return sb.ToString();
}
Проблема с вышесказанным в том, что я получаю строку, которая выглядит следующим образом
LoanNum in (1234) and LoanNum in (3456) and Dates in (...) and Dates in (...)