注意 标题并没有完全反射(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/