Split a separated string into hierarchy using c# and linq

后端 未结 4 1465
粉色の甜心
粉色の甜心 2021-02-14 23:28

I have string separated by dot (\'.\') characters that represents a hierarchy:

string source = \"Class1.StructA.StructB.StructC.FieldA\";

How c

4条回答
  •  無奈伤痛
    2021-02-14 23:49

    Split the string by the delimiters taking 1...N of the different levels and rejoin the string.

    const char DELIMITER = '.';
    var source = "Class1.StructA.StructB.StructC.FieldA";
    var hierarchy = source.Split(DELIMITER);
    var result = Enumerable.Range(1, hierarchy.Length)
        .Select(i => String.Join(".", hierarchy.Take(i)))
        .ToArray();
    

    Here's a more efficient way to do this without LINQ:

    const char DELIMITER = '.';
    var source = "Class1.StructA.StructB.StructC.FieldA";
    var result = new List();
    for (int i = 0; i < source.Length; i++)
    {
        if (source[i] == DELIMITER)
        {
            result.Add(source.Substring(0, i));
        }
    }
    result.Add(source); // assuming there is no trailing delimiter
    

提交回复
热议问题