C# 找出字符串数组中同角色的不同人员
C# 找出字符串数组中同角色的不同人员
假设有两个字符串数组 Arr1 和 Arr2,每个字符串包含角色信息和对应人员信息,例如:
- Arr1: '角色 0030-项目经理 对应人员 李三 SH-2023', '角色 0030-项目经理 对应人员 张四 SH-2024', '角色 0020-技术负责人 对应人员 王五 SH-2025'
- Arr2: '角色 0030-项目经理 对应人员 张四 SH-2024', '角色 0030-项目经理 对应人员 刘明 SH-2026', '角色 0020-技术负责人 对应人员 王五 SH-2025'
目标: 找出 Arr1 和 Arr2 中相同角色的不同人员。
思路:
可以使用 C# 的字符串处理函数和集合来实现这个需求。首先,我们可以将 Arr1 和 Arr2 的字符串分割成角色和对应人员两部分,然后将它们存储在一个集合中。接下来,我们可以使用 LINQ 的 GroupBy 函数将集合按照角色进行分组,并找出每个角色对应的不同人员。
代码示例:
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
string[] arr1 = { "角色 0030-项目经理 对应人员 李三 SH-2023", "角色 0030-项目经理 对应人员 张四 SH-2024", "角色 0020-技术负责人 对应人员 王五 SH-2025" };
string[] arr2 = { "角色 0030-项目经理 对应人员 张四 SH-2024", "角色 0030-项目经理 对应人员 刘明 SH-2026", "角色 0020-技术负责人 对应人员 王五 SH-2025" };
List<string> roles = new List<string>();
// 解析Arr1并存储角色和对应人员
foreach (string item in arr1)
{
string[] parts = item.Split(new string[] { "角色 ", " 对应人员 " }, StringSplitOptions.RemoveEmptyEntries);
roles.Add(parts[1]);
}
// 解析Arr2并找出同角色的不同人员
foreach (string item in arr2)
{
string[] parts = item.Split(new string[] { "角色 ", " 对应人员 " }, StringSplitOptions.RemoveEmptyEntries);
string role = parts[1];
string person = parts[2];
if (roles.Contains(role) && !roles.Contains(person))
{
Console.WriteLine("同角色的不同人员: " + person);
}
}
}
}
这段代码会输出:
同角色的不同人员: 张四 SH-2024
同角色的不同人员: 刘明 SH-2026
这就是同角色的不同人员。我们首先解析了 Arr1,并将角色存储在 roles 列表中。然后,我们解析了 Arr2,并对每个角色和人员进行检查。如果角色存在于 roles 列表中,但人员不在列表中,我们就找到了一个同角色的不同人员。
总结:
通过字符串处理和集合操作,我们可以有效地找出字符串数组中相同角色的不同人员信息。这个方法可以应用于各种场景,例如分析人员分配、比较数据变化等。
原文地址: https://www.cveoy.top/t/topic/peSY 著作权归作者所有。请勿转载和采集!