Utility Function:
public static string GetProperties<T>(string alias="")
{
if (alias.Length>0)
{
return typeof(T).GetProperties().Select(x => x.Name).Aggregate((x, y) =>
alias + " = " + alias + "." + x + "," + Environment.NewLine + alias + " = " + alias + "." + y + ",");
}
else
{
return typeof(T).GetProperties().Select(x => x.Name).Aggregate((x, y) => x + Environment.NewLine + y);
}
}
Code:
public class ContainerInLog
{
public int ContainerInLogID { get; set; }
public int ContainerInID { get; set; }
public int CargoID { get; set; }
public int LoadStatus { get; set; }
}
public static void Main()
{
string list = GetProperties<ContainerInLog>("y");
Console.WriteLine(list);
}
Result:
y = y.y = y.y = y.ContainerInLogID,
y = y.ContainerInID,,
y = y.CargoID,,
y = y.LoadStatus,
Expected Result:
ContainerInLogID = y.ContainerInLogID,
ContainerInID = y.ContainerInID,
CargoID = y.CargoID,
LoadStatus = y.LoadStatus,
Aggregatewith strings. You generate a lot of intermediate strings which are then thrown away, making it expensive. Usestring.Join/ aStringBuilderas appropriate.