我需要一个方法(或2?),为字符串添加后缀。
假设我有字符串“Hello”。
如果我点击选项1,它应该创建一个字符串列表,例如
您好 你好乙 你好c
我已经覆盖了那部分。
下一个选项我需要它来创建一个列表,如
你好aa 你好ab 你好,交流 ... 你好ba 你好bb 你好bc 等等....
此外......每个选项还有2个其他选项..
假设我想将后缀1添加为a-z,后缀2添加为0-9 那就是
你好a0 你好a1
有没有人可以帮助我?这就是我单个字母增量的方式。
if (ChkSuffix.Checked)
{
if (CmbSuffixSingle.Text == @"a - z" && CmbSuffixDouble.Text == "")
{
var p = 'a';
for (var i = 0; i <= 25; i++)
{
var keyword = TxtKeyword.Text + " " + p;
terms.Add(keyword);
p++;
//Console.WriteLine(keyword);
}
}
}
答案 0 :(得分:2)
尝试使用这些扩展方法:
public static IEnumerable<string> AppendSuffix(
this string @this, string dictionary)
{
return dictionary.Select(x => @this + x);
}
public static IEnumerable<string> AppendSuffix(
this string @this, string dictionary, int levels)
{
var r = @this.AppendSuffix(dictionary);
if (levels > 1)
{
r = r.SelectMany(x => x.AppendSuffix(dictionary, levels - 1));
}
return r;
}
public static IEnumerable<string> AppendSuffix(
this IEnumerable<string> @this, string dictionary)
{
return @this.SelectMany(x => x.AppendSuffix(dictionary));
}
public static IEnumerable<string> AppendSuffix(
this IEnumerable<string> @this, string dictionary, int levels)
{
var r = @this.AppendSuffix(dictionary);
if (levels > 1)
{
r = r.SelectMany(x => x.AppendSuffix(dictionary, levels - 1));
}
return r;
}
然后像这样打电话给他们:
"Hello ".AppendSuffix("abc"); // Hello a, Hello b, Hello c
"Hello ".AppendSuffix("abc", 2); // Hello aa to Hello cc
"Hello "
.AppendSuffix("abc")
.AppendSuffix("0123456789"); // Hello a0 to Hello c9