В c # есть элегантный способ разбить строку типа "a.b.c" на a, a.b, a.b.c
Количество разделителей не фиксировано, поэтому это может быть «a.b», который будет выводить {a, a.b} или «a.b.c.d», который будет выводить {a, a.b, a.b.c, a.b.c.d}.
Единственное, о чем я могу думать, это разбить строку на отдельные компоненты и затем снова объединить.
Это то, что я имею до сих пор:
var fieldNames = new List<string>();
var fieldSeparator ='.';
var myString = "a.b.c.d";
var individualFields = myString.Split(fieldSeparator);
string name = "";
foreach(var fieldName in individualFields)
{
name = string.IsNullOrEmpty(name) ? fieldName : $"{name}{fieldSeparator}{fieldName}";
fieldNames.Add(name);
}