首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >元素字符串中的C# --如何将元素组按顺序排列

元素字符串中的C# --如何将元素组按顺序排列
EN

Stack Overflow用户
提问于 2020-11-10 13:25:51
回答 2查看 27关注 0票数 0

我有"A1-4,A1-6,A1-8,B1-1,B1-2,B1-3,B1-4.B1-8“的字符串,这里我需要将A1元素排列为A1-1,A1-2,A1-3,因为我有3种元素。如果我有A1-2,A1-3,A1-7,A1-8这样的元素,我需要排列为A1-1,A1-2,A1-3,A1-4,因为我有4种元素。

像这样,我需要识别类型(A1或A2或B1或Z1),根据用逗号分隔的数字排列它们。

代码语言:javascript
复制
string _sequenceNum="A1-4,A1-6,A1-8,B1-1,B1-2,B1-3,B1-4...B1-8";
_sequenceNum.split(",");

这里我的问题是如何识别类别

请帮帮我

EN

回答 2

Stack Overflow用户

发布于 2020-11-10 14:09:41

您可以使用LINQ对列表进行分组和处理:

代码语言:javascript
复制
string sequenceNum="A1-4,A1-6,A1-8,B1-1,B1-2,B1-3,B1-4,B1-8";
var sequence = sequenceNum.Split(",");

var newSequence = sequence
  .Select(x => x.Split('-')) // 1
  .GroupBy(x => x[0])        // 2
  .SelectMany(x => Enumerable.Range(1, x.Count()).Select(i => x.Key + "-" + i)) // 3
  .ToList();                 // 4

详细情况:

  1. ."A1-4“进入数组{ "A1","4”}
  2. --根据数组的第一个元素对数组的结果序列进行分组(例如:“A1”)
  3. --它使用Enumerable.Range(1, x.Count())创建一个序列1,2,.(每个组中都有元素),然后将新字符串创建为"(groupname)-(index)“。sequence.
  4. Make将结果压缩为单个SelectMany,这是处理序列

中的一个新列表。

票数 0
EN

Stack Overflow用户

发布于 2020-11-18 08:00:33

代码语言:javascript
复制
   string _sequenceNum = "A1-4,B1-8,B1-3,B1-1,A1-8,B1-4,A1-6,B1-2";         
            var test = _sequenceNum.Split(',');           
              Array.Sort(test);        
             foreach (var a in test)         
                 Console.WriteLine(a);        
             foreach (var a in test.Where(i => i.StartsWith("A")))         
                 Console.WriteLine(a);  
        Console.WriteLine(string.Join(",",test));        
             Console.ReadLine();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64769813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档