84 lines
2.6 KiB
C#
Raw Permalink Normal View History

2025-04-21 14:10:27 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyCode.Project.Infrastructure.Trees
{
/// <summary>
/// 树 生成器
/// </summary>
public class TreeBuilder
{
/// <summary>
/// 获取树节点上下文
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
/// <typeparam name="TOuter">输出类型</typeparam>
/// <returns></returns>
public static ITreeContext<T, TOuter> Build<T, TOuter>()
{
return new TreeContext<T, TOuter>();
}
/// <summary>
/// 获取树节点上下文
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
/// <typeparam name="TOuter">输出类型</typeparam>
/// <param name="text">顶级节点显示文本</param>
/// <returns></returns>
public static ITreeContext<T, TOuter> Build<T, TOuter>(string text)
{
var root = new TreeNode<TOuter>(text);
return Build<T, TOuter>(root);
}
/// <summary>
/// 获取树节点上下文
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
/// <typeparam name="TOuter">输出类型</typeparam>
/// <param name="rootNode">顶级节点</param>
/// <returns></returns>
public static ITreeContext<T, TOuter> Build<T, TOuter>(TreeNode<TOuter> rootNode)
{
return new TreeContext<T, TOuter>(rootNode);
}
/// <summary>
/// 获取树节点上下文
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
/// <returns></returns>
public static ITreeContext<T> Build<T>()
{
return new TreeContext<T>();
}
/// <summary>
/// 获取树节点上下文
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
/// <param name="text">顶级节点显示文本</param>
/// <returns></returns>
public static ITreeContext<T> Build<T>(string text)
{
var root = new TreeNode<T>(text);
return Build<T>(root);
}
/// <summary>
/// 获取树节点上下文
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
/// <param name="rootNode">顶级节点</param>
/// <returns></returns>
public static ITreeContext<T> Build<T>(TreeNode<T> rootNode)
{
return new TreeContext<T>(rootNode);
}
}
}