假设我们有一个字符串“bread”,我想得到字符串的所有前缀和后缀。它的定义如下图所示。
前缀:
B,BR,BRE,面包机
后缀:
读,EAD,广告,d
现在我只能获得前缀,我认为这是错误的。
string pattern = "bread";
var prefixes = pattern.Where(x => x.ToString().StartsWith(pattern.Substring(0, 1))).ToList();
答案 0 :(得分:3)
我会这样做:
string pattern = "bread";
var prefixes = Enumerable.Range(1, pattern.Length - 1)
.Select(p => pattern.Substring(0, p));
var suffixes = Enumerable.Range(1, pattern.Length - 1)
.Select(p => pattern.Substring(p, pattern.Length - p));
如果您不需要集合中的结果,您可能只想使用Dave Zych发布的简单for循环。
答案 1 :(得分:2)
为什么不循环?
string s = "bread";
for(int i = 1; i < s.Length; i++)
{
Console.WriteLine(s.Substring(0, i)); //prefix
Console.WriteLine(s.SubString(i, s.Length - i)); //suffix
}
答案 2 :(得分:0)
List<string> prefixes = new List<string>();
for (int i = 0; i < myString.Length; i++)
{
prefixes.Add(myString.Substring(0,i));
}
List<string> sufixes = new List<string>();
for (int i = 0; i < myString.Length; i++)
{
sufixes.Add(myString.Substring(i,myString Length - i));
}