c# - 如何在 C# 中查找数组中的子字符串?
问题描述
我们在层次结构中构建的员工编号都在 TreeView 中
我想突出显示一些员工以及该员工下的所有员工
例子
员工ID
A1 CEO
A12 CIO
A12.1 Software Manager
A12.11 Java Developer
A12.12 .Net Developer
A12.13 Python Developer
A12.2 Data Manager
A12.21 Data Analyst
A12.22 Data Scientist
A22 CFO
A22.1 Accounting Manager
A22.11 Accountant
A22.12 Auditor
员工列表将作为字符串发送
"A12.11,A12.2,A22"
在这种情况下,A12.2 下的所有员工也应突出显示,A22 下的所有员工也应突出显示
所以这些员工应该被突出
A12.11
A12.2
A12.21
A12.22
A22
A22.1
A22.11
A22.12
我构建了这段代码来选择所有员工,但它只突出显示确切的员工而不是他们下的员工
foreach (TreeNode tn in nodes)
{
if (EmpSelect.Split(',').Contains(tn.Name))
{
tn.ForeColor = Color.Red;
}
}
知道如何使此代码突出显示下的所有员工和员工吗?
解决方案
如果您查看有关How to: Iterate Through All Nodes of a Windows Forms TreeView Control的 microsoft 文档,您将看到递归修改单个节点下的所有节点的简单方法。
这是您的问题的修改示例:
private void SetColorOnNodeAndSubNodes(TreeNode treeNode, Color color)
{
// Color this node
treeNode.ForeColor = color;
// Color its children
foreach (TreeNode childNode in treeNode.Nodes)
{
SetColorOnNodeAndSubNodes(childNode, color);
}
}
然后在您的示例代码中,您将执行以下操作:
foreach (TreeNode tn in nodes)
{
if (EmpSelect.Split(',').Contains(tn.Name))
{
SetColorOnNodeAndSubNodes(tn, Color.Red);
}
}
推荐阅读
- couchbase - couchbase N1ql 查询选择非分组字段
- youtube-data-api - YouTube 数据 API 配额扩展应用程序 - 验证码是否损坏?
- typescript - 无法获取未定义或空引用的属性“消息”
- javascript - 带有点符号的 MongoDB find() 不起作用
- python - GraphRbacManagementClient.applications.create() 返回访问令牌丢失或格式错误
- java - Android Studio 错误:按钮不止一次
- ruby-on-rails - Postgres db 无法在 Heroku 上运行
- font-awesome - 无法再下载 Font Awesome 4.7?
- audiokit - AKFFTTap 在 IOS 应用程序中不同步,如何解决?
- angularjs - IIS 缓存控制和 Angular JS