C# 找出字符串数组中同角色的不同人员

假设有两个字符串数组 Arr1Arr2,每个字符串包含角色信息和对应人员信息,例如:

  • Arr1: '角色 0030-项目经理 对应人员 李三 SH-2023', '角色 0030-项目经理 对应人员 张四 SH-2024', '角色 0020-技术负责人 对应人员 王五 SH-2025'
  • Arr2: '角色 0030-项目经理 对应人员 张四 SH-2024', '角色 0030-项目经理 对应人员 刘明 SH-2026', '角色 0020-技术负责人 对应人员 王五 SH-2025'

目标: 找出 Arr1Arr2 中相同角色的不同人员。

思路:

可以使用 C# 的字符串处理函数和集合来实现这个需求。首先,我们可以将 Arr1Arr2 的字符串分割成角色和对应人员两部分,然后将它们存储在一个集合中。接下来,我们可以使用 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 列表中,但人员不在列表中,我们就找到了一个同角色的不同人员。

总结:

通过字符串处理和集合操作,我们可以有效地找出字符串数组中相同角色的不同人员信息。这个方法可以应用于各种场景,例如分析人员分配、比较数据变化等。

C# 找出字符串数组中同角色的不同人员

原文地址: https://www.cveoy.top/t/topic/peSY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录