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();
}