Or even better:
public static string Join<T>(this IList<T> list, string joinString)
{
StringBuilder result = new StringBuilder();
int listCount = list.Count;
int listCountMinusOne = listCount - 1;
if (list != null && listCount > 0)
{
if (listCount > 1)
{
for (var i = 0; i < listCount; i++)
{
if (i != listCountMinusOne)
{
result.Append(list[i]);
result.Append(joinString);
}
else
result.Append(list[i]);
}
}
else
result.Append(list[0]);
}
return result.ToString();
}
An accomplished software engineer specialized in object-oriented design and analysis on Microsoft .NET platform with extensive experience in the full life cycle of the software design process.
Experienced in agile software development via scrum and kanban frameworks supported by the TFS ALM environment and JIRA. In depth know how on all automation process leading to continuous integration, deployment and feedback.
Additionally, I have a strong hands-on experience on deploying and administering Microsoft Team Foundation Server (migrations, builds, deployment, branching strategies, etc.).