IE可枚举到带空格的字符串



我找到了一个很好的代码来将数据作为字符串的字谜,但是当我显示时,我进入了连续字符串,但我想在 3 个字符后使用空格。

static void Main(string[] args)
{
string result = "";
var res = "abc".Anagrams();
foreach(var anagram in res)
{ 
if(anagram.Count() == 3)
{
Console.Write(anagram.MergeToStr());
}
}
}
public static string MergeToStr(this IEnumerable<char> chars)
{
return new string (chars.ToArray());
}

我的输出

abcacbbacbcacabcba

但我的预期输出应该是

美国广播公司 ACB BAC BCA CAB CBA

如何在输出中添加空格?

不要在字谜之间打印任何空格。

foreach(var anagram in res)
{ 
if(anagram.Count() != 3) continue;
Console.Write($"{anagram.MergeToStr()} ");
}

如果不想使用字符串插值,可以简单地:

Console.Write(anagram.MergeToStr() + " ");

编辑: 对响应进行排序:

var res = "abc".Anagrams().Where(x => x.Count() == 3).Select(x => x.MergeToStr()).OrderBy(x => x).ToList();
foreach(var word in res)
{
Console.Write($"{word} ");
}

下面的示例使用Linqstring.Join作为所需的输出。

static void Main(string[] args)
{
string result = "";
var res = "abc".Anagrams();
Console.WriteLine(string.Join("   ", res.Where(a => a.Count() == 3).Select(a => a.MergeToStr()).TrimRight());
}

这将产生abc acb bac bca cab cba

最新更新