添加增量字母&字符串的数字字符

时间:2013-08-28 00:34:44

标签: c#

我需要一个方法(或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);
                    }
                }
            }

1 个答案:

答案 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