我有一个看起来像这样的字符串:
var result = "y-9m-10y-9m-11y-0m-02y-0m-03";
我需要列两个 list :
一个用于所有 y-
对象 (9,9,0,0)
另一个用于 m-
对象 (10,11,02,03)。
我该怎么做?
我有以前的旧代码,它不关心 y-
对象。现在我需要两套。
var result = "m-10m-11m-02m-03";
var months = result.Split(new[] { "m-" }, StringSplitOptions.RemoveEmptyEntries);
最佳答案
使用正则表达式和 LINQ 的快速而肮脏的解决方案:
var months = Regex.Matches(result, @"m-(\d+)").Cast<Match>().Select(m => int.Parse(m.Groups[1].Value));
var years = Regex.Matches(result, @"y-(\d+)").Cast<Match>().Select(m => int.Parse(m.Groups[1].Value));
请注意,这不会进行任何错误检查。
编辑:在问题中,您似乎使用了提取的字符串而不将它们转换为 int
。在这种情况下,省略 int.Parse
并直接使用 m.Groups[1].Value
。
关于c# - 需要从字符串拆分中将两个值放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58141637/