C# 嵌套列表中的唯一项

问题描述 投票:0回答:0

我有一个像下面这样的模型

public class Path
{
  public string Name {get; set;}
  public IEnumerable<Path> Items {get; set;}
}

&

List<Path>
中单个项目的列表数据表示如下

new List<path>
{
  new Path
  {
    Name = "FirstRoot",
    Items = new List<Path>
    {
      new Path
      {
        Name = "2023",
        Items = new List<Path>
        {
          new Path
          {
            Name = "01",
            Items = new List<Path>
            {
              new Path
              {
                Name = "01"
                Items = new List<Path>
                {
                  new Path
                  {
                    Name = "01.text"
                    Items = null,
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  new Path
  {
    Name = "FirstRoot",
    Items = new List<Path>
    {
      new Path
      {
        Name = "2023",
        Items = new List<Path>
        {
          new Path
          {
            Name = "01",
            Items = new List<Path>
            {
              new Path
              {
                Name = "01"
                Items = new List<Path>
                {
                  new Path
                  {
                    Name = "02.text"
                    Items = null,
                  }
                }
              }
            }
          }
        }
      }
    }
  },
...
}
- FirstRoot - 2023 - 01 - 01.text
- FirstRoot - 2023 - 01 - 02.text
- SecondRoot - 2023 - 01 - 01.text
- SecondRoot - 2023 - 01 - 02.text
- ThirdRoot - 2023 - 01.text
- ThirdRoot - 2023 - 02.text

现在我如何从中获得独特的路径,以便我的列表看起来像

new List<path>
{
  new Path
  {
    Name = "FirstRoot",
    Items = new List<Path>
    {
      new Path
      {
        Name = "2023",
        Items = new List<Path>
        {
          new Path
          {
            Name = "01",
            Items = new List<Path>
            {
              new Path
              {
                Name = "01"
                Items = new List<Path>
                {
                  new Path
                  {
                    Name = "01.text"
                    Items = null,
                  },
                  new Path
                  {
                    Name = "02.text"
                    Items = null,
                  },
                }
              }
            }
          }
        }
      }
    }
  },
  new Path
  {
    Name = "SecondRoot",
    Items = new List<Path>
    {
      new Path
      {
        Name = "2023",
        Items = new List<Path>
        {
          new Path
          {
            Name = "01",
            Items = new List<Path>
            {
              new Path
              {
                Name = "01"
                Items = new List<Path>
                {
                  new Path
                  {
                    Name = "01.text"
                    Items = null,
                  },
                  new Path
                  {
                    Name = "02.text"
                    Items = null,
                  },
                }
              }
            }
          }
        }
      }
    }
  },
...
}

我试图查看this解决方案,但找不到。

c# linq
© www.soinside.com 2019 - 2024. All rights reserved.