c# - 需要从字符串拆分中将两个值放入数组中

标签 c# arrays split

我有一个看起来像这样的字符串:

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/

相关文章:

c# - asp.net 5.0 project.json 中 RavenDB.Client 引用的问题

c# - Unity - 2D 着色器/光照,如 Terraria 或 Starbound

javascript - 将键从另一个对象合并到嵌套对象中

java - 从 JTable 中删除对象时出现 ArrayOutOfBoundsException

c++ - 使用 cin.get 提取特定数量的字符并确保正确

r - 使用键 - 值将元素列表拆分为多列

PHP - 拆分丑陋的日期字符串,然后对其进行日期数学运算?

c# - 如何将 gridview 行添加到数据表?

python - 如何拆分 Python 列表的每个第 N 个元素

c# - 如何使用 C# XmlReader 忽略未知的命名空间?