You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据输入序列号从serial_and_username_and_subType提取对应用户名及订阅信息

实现方案

首先你现有逻辑存在明显错误:if (userInput.Contains(serial_and_username_and_subType)) 的判断逻辑完全颠倒,你需要判断的是存储的全量信息中是否包含用户输入的序列号,而不是短的用户输入包含长的全量数据,该判断逻辑永远返回false,需要先修正。

推荐优先将原始数据预处理为字典,后续查询效率更高,具体实现步骤如下:

步骤1:预处理原始数据生成查询字典

只需要在程序初始化阶段执行一次即可,不需要每次用户查询都重复解析:

// 存储解析后的数据,key为序列号,value为用户名+订阅类型的组合
var serialMap = new Dictionary<string, (string UserName, string SubscriptionType)>();

// 按换行拆分原始文本,过滤空行
var allLines = serial_and_username_and_subType.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (var line in allLines)
{
    // 序列号无空格,第一个空格前的内容就是序列号
    var firstSpacePos = line.IndexOf(' ');
    if (firstSpacePos < 1) continue;
    
    var serialNumber = line.Substring(0, firstSpacePos).Trim();
    var contentPart = line.Substring(firstSpacePos).Trim();

    // 提取%包裹的用户名
    var userNameStart = contentPart.IndexOf('%') + 1;
    var userNameEnd = contentPart.IndexOf('%', userNameStart);
    if (userNameEnd <= userNameStart) continue;
    var userName = contentPart.Substring(userNameStart, userNameEnd - userNameStart);

    // 提取*包裹的订阅类型
    var subStart = contentPart.IndexOf('*') + 1;
    var subEnd = contentPart.IndexOf('*', subStart);
    if (subEnd <= subStart) continue;
    var subType = contentPart.Substring(subStart, subEnd - subStart);

    serialMap.TryAdd(serialNumber, (userName, subType));
}

步骤2:处理用户输入查询

Console.WriteLine("Please enter your Serial:");
var userInput = Console.ReadLine()?.Trim();

// 匹配序列号输出对应信息
if (!string.IsNullOrEmpty(userInput) && serialMap.TryGetValue(userInput, out var userInfo))
{
    Console.WriteLine($"Welcome, {userInfo.UserName}!");
    Console.WriteLine($"You currently have a {userInfo.SubscriptionType} subscription!");
}
else
{
    Console.WriteLine("The serial number you entered is invalid.");
}

可选优化点

  • 如果序列号不区分大小写,可以在存入字典和获取用户输入时,统一调用ToUpper()或ToLower()做归一化处理,避免大小写不匹配的问题
  • 如果数据量极小,也可以跳过字典预处理,每次用户输入后直接遍历所有行匹配序列号,实现更简单但查询效率更低

内容的提问来源于stack exchange,提问作者qNameak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 23:39:03