C# 判断物料是否存在两个版本:字典方法详解
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('不存在两个版本的物料');
}
代码解释:
- 创建字典: 使用
Dictionary<string, string>创建一个字典,用于存储物料名称和版本号的对应关系。 - 遍历物料列表: 使用
foreach循环遍历物料列表items,每个元素的格式为 '物料,版本'。 - 拆分物料和版本号: 使用
Split(',')方法将每个元素拆分成物料名称和版本号,并分别存储到material和version变量中。 - 判断物料是否已存在: 使用
ContainsKey(material)方法判断字典中是否已经存在该物料。 - 比较版本号: 如果物料已存在,则使用
materials[material]获取该物料的已有版本号,并与当前版本号version进行比较。如果两个版本号不同,则说明该物料存在两个版本,将hasTwoVersions变量设置为true并退出循环。 - 记录新物料和版本号: 如果物料是第一次出现,则将该物料和版本号记录到字典中。
- 输出结果: 根据
hasTwoVersions变量的值输出是否存在两个版本的物料。
总结: 通过使用字典,我们可以高效地判断一个物料列表中是否存在两个版本的物料。该方法适用于需要快速检测物料版本冲突的场景。
原文地址: https://www.cveoy.top/t/topic/mubK 著作权归作者所有。请勿转载和采集!