c# - 查找拆分字符串中的所有组

标签 c# string linq

注意 标题并没有完全反射(reflect)我需要做什么,但我找不到正确的词来表达,因为我的英语不完美。如果有人想更正它,请随意。


给定一个包含组(由 n 点分隔)的字符串,我想获取所有值:group[0];组[0].组[1];组[0].组[1]..组[n].

示例:输入:Tr.WH.Eu6.ISC 会给出:

  • 尝试
  • Tr.WH
  • Tr.WH.Eu6
  • Tr.WH.Eu6.ISC

现在我有这段代码:

string input = "Tr.WH.Eu6.ISC";
string[] splitStrings = input.Split('.');
List<string> subs = new List<string> { "" };
for (int i = 0; i < splitStrings.Count(); i++)
{
    subs.Add(subs.Last() + "." + splitStrings[i]);
}
subs.Remove("");

我发现它很丑陋并且在输出时不能完全工作:

  • .Tr
  • .Tr.WH
  • .Tr.WH.Eu6
  • .Tr.WH.Eu6.ISC

如何让它工作(最好使用 Linq)?

最佳答案

使用 LINQ:

string input = "Tr.WH.Eu6.ISC";
string[] groups = input.Split('.');
string[] output = groups.Select((x, idx) => string.Join(".", groups.Take(idx + 1)))
                        .ToArray();

对于每个组,其中 idx 是组的索引,从组集合中取出 (idx + 1) 个条目并将它们与“.”连接起来分隔符。

关于c# - 查找拆分字符串中的所有组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33689646/

相关文章:

java - XLIFF、版本控制或翻译更新过程(Diff Leverage 步骤)

sql - 如何在SQL命令中包含值?

c# - LINQ "MaxOrDefault"?

sql - LINQ区分大小写

wpf - 如何将 WPF TreeView HierarchicalDataTemplate 与 LINQ to Entities 一起使用?

c# - Excel 应用程序单例 - 仅使用一个 Excel 应用程序实例而不退出的可能威胁?

c# - 任务状态一直等待激活

c# - IHttpActionResult 和集成测试 Web API v2 放入 MS 测试

c - 如何从C字符串中获取第一个字母?

c++ - 奇怪的结果 (`\210` ) 打印字符数组的末尾时