How to refactor this code?
.net, c#, refactoring
Solution
Assuming you have .NET 3.5:
string Filter(string input, SomeType item, Func<SomeType, string> extract)
{
if (!String.IsNullOrEmpty(input))
{
if (item == null) return ",";
else return "," + extract(item);
}
}
_gridModel.Header += Filter(_gridModel.Header, item, i => i.Header);
_gridModel.Width += Filter(_gridModel.Width, item, i => i.Width);
_gridModel.Align += Filter(_gridModel.Align, item, i => i.Align);
// etc...
Problem
how can i refactor this code down to one method or something? ``` if (!string.IsNullOrEmpty(_gridModel.Header)) _gridModel.Header += ","; if (item != null) _gridModel.Header += item.Header; if (!string.IsNullOrEmpty(_gridModel.Width)) _gridModel.Width += ","; if (item != null) _gridModel.Width += item.Width; if (!string.IsNullOrEmpty(_gridModel.Align)) _gridModel.Align += ","; if (item != null) _gridModel.Align += item.Align; if (!string.IsNullOrEmpty(_gridModel.Filter)) _gridModel.Filter += ","; if (item != null) _gridModel.Filter += item.Filter; if (!string.IsNullOrEmpty(_gridModel.Type)) _gridModel.Type += ","; if (item != null) _gridModel.Type += item.Type; if (!string.IsNullOrEmpty(_gridModel.Sort)) _gridModel.Sort += ","; if (item != null) _gridModel.Sort += item.Sort; ```