It's because LabelName is an emtry array, you should initialize each element in the array before you can access its properties. Try this:
var split1 = str.Split(new[] { '~', ',', '!' });
Label[] LabelName = (from sp in split1
select new Label{
Name = sp}).ToArray();