我有"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),根据用逗号分隔的数字排列它们。
string _sequenceNum="A1-4,A1-6,A1-8,B1-1,B1-2,B1-3,B1-4...B1-8";
_sequenceNum.split(",");这里我的问题是如何识别类别
请帮帮我
发布于 2020-11-10 14:09:41
您可以使用LINQ对列表进行分组和处理:
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详细情况:
Enumerable.Range(1, x.Count())创建一个序列1,2,.(每个组中都有元素),然后将新字符串创建为"(groupname)-(index)“。sequence.SelectMany,这是处理序列中的一个新列表。
发布于 2020-11-18 08:00:33
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();https://stackoverflow.com/questions/64769813
复制相似问题