C# 判断物料是否存在两个版本:字典方法详解

本文将介绍如何使用 C# 字典 (Dictionary) 来判断一个物料列表中是否存在两个版本的物料。

问题场景: 假设你有一个物料列表,其中包含物料名称和版本号,例如:'物料A,版本B','物料B,版本B','物料C,版本B','物料A,版本C'。你需要判断这个列表中是否包含同一物料但版本号不同的情况,即是否某个物料存在两个版本。

解决方案: 使用字典来记录每个物料对应的版本号。如果一个物料出现了两次,并且版本号不同,则说明该物料有两个版本。

示例代码:

var materials = new Dictionary<string, string>(); // 物料和版本号的字典
bool hasTwoVersions = false; // 是否存在两个版本的物料

foreach (string item in items) // 遍历物料列表
{
    string[] parts = item.Split(','); // 拆分物料和版本号
    string material = parts[0].Trim();
    string version = parts[1].Trim();

    if (materials.ContainsKey(material)) // 如果该物料已经出现过
    {
        if (materials[material] != version) // 如果版本号不同,则存在两个版本
        {
            hasTwoVersions = true;
            break; // 找到一个即可退出循环
        }
    }
    else // 如果该物料是第一次出现,则记录版本号
    {
        materials[material] = version;
    }
}

if (hasTwoVersions)
{
    Console.WriteLine('存在两个版本的物料');
}
else
{
    Console.WriteLine('不存在两个版本的物料');
}

代码解释:

  1. 创建字典: 使用 Dictionary<string, string> 创建一个字典,用于存储物料名称和版本号的对应关系。
  2. 遍历物料列表: 使用 foreach 循环遍历物料列表 items,每个元素的格式为 '物料,版本'。
  3. 拆分物料和版本号: 使用 Split(',') 方法将每个元素拆分成物料名称和版本号,并分别存储到 materialversion 变量中。
  4. 判断物料是否已存在: 使用 ContainsKey(material) 方法判断字典中是否已经存在该物料。
  5. 比较版本号: 如果物料已存在,则使用 materials[material] 获取该物料的已有版本号,并与当前版本号 version 进行比较。如果两个版本号不同,则说明该物料存在两个版本,将 hasTwoVersions 变量设置为 true 并退出循环。
  6. 记录新物料和版本号: 如果物料是第一次出现,则将该物料和版本号记录到字典中。
  7. 输出结果: 根据 hasTwoVersions 变量的值输出是否存在两个版本的物料。

总结: 通过使用字典,我们可以高效地判断一个物料列表中是否存在两个版本的物料。该方法适用于需要快速检测物料版本冲突的场景。

C# 判断物料是否存在两个版本:字典方法详解

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

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