The following test passes as written. Why? (i.e., why does a leading null value in an array cause string.Join() to return empty string?)
[TestMethod]
public void Test_string_Join()
{
object[] values0 = { "foo", 3, null };
var text0 = string.Join(", ", values0);
Console.WriteLine("text0 = " + text0);
AssertX.AreEqual("foo, 3, ", text0); // works as expected
object[] values1 = { null, "foo", 3, null };
var text1 = string.Join(", ", values1);
Console.WriteLine("text1 = " + text1);
AssertX.AreEqual("", text1); // does NOT work as expected, why empty?
}