c#让字符串获取一二级一对多数值并输出

更新时间:2025/3/25 0:00:00点击: 技术文章

  string input = "11_1,11_2,11_3,12_3,12_4,12_8,13_3,13_6,13_9";

  // 创建一个字典来存储一级标识符和它们对应的二级标识符列表
  Dictionary<string, List<string>> dictionary = new Dictionary<string, List<string>>();

  // 按 ',' 分割字符串成多个部分
  string[] parts = input.Split(',');

  foreach (var part in parts)
  {
      // 每个部分由 '一级标识符_二级标识符' 组成
      // 使用 '_' 分割字符串来获取一级和二级标识符
      string[] keyValue = part.Split('_');

      // 确保分割后的数组有两个元素(即一级和二级标识符都存在)
      if (keyValue.Length == 2)
      {
          string primaryKey = keyValue[0];
          string secondaryKey = keyValue[1];

          // 检查字典中是否已存在该一级标识符
          if (!dictionary.ContainsKey(primaryKey))
          {
              // 如果不存在,则添加一个新条目
              dictionary[primaryKey] = new List<string> { secondaryKey };
          }
          else
          {
              // 如果存在,则将新的二级标识符添加到现有的列表中
              dictionary[primaryKey].Add(secondaryKey);
          }
      }
  }

  // 输出结果
  foreach (var kvp in dictionary)
  {
      //  Console.WriteLine($"一级标识符: {kvp.Key}");
      listBox1.Items.Add(kvp.Key);
      // Console.WriteLine($"  二级标识符: {string.Join(", ", kvp.Value)}");

      string[] parts2 = string.Join(", ", kvp.Value).Replace(",", ",").Split(',');

      // 创建一个列表来存储转换后的整数
      List<int> numbers = new List<int>();

      // 遍历分割后的字符串数组,并将每个元素转换为整数
      foreach (string part in parts2)
      {
          listBox2.Items.Add(part);
      }

      // listBox2.Items.Add(string.Join(", ", kvp.Value));
  }