String 基于单词替换动态创建给定类型的所有句子

String 基于单词替换动态创建给定类型的所有句子,string,formatting,permutation,combinations,replace,String,Formatting,Permutation,Combinations,Replace,我现在有一个C#问题,我没能清醒过来。本质上,我需要生成一个字符串列表或数组,这些字符串是基于以下事实的:在句子中,一个或多个单词可能有不同的拼写或用法。我打算对句子中的每个单词(可能)有许多不同的可能性 例如,如果我定义“are”一词可以写成“are”或“r”,而“you”一词可以写成“you”或“u”,那么按照“你好”这一行传递信息的预期输出将是: “你好吗?” “你好吗?” “你好吗?” “你怎么样?” 我考虑过可以使用枚举来表示单词类型,例如: public enum Word

我现在有一个C#问题,我没能清醒过来。本质上,我需要生成一个字符串列表或数组,这些字符串是基于以下事实的:在句子中,一个或多个单词可能有不同的拼写或用法。我打算对句子中的每个单词(可能)有许多不同的可能性

例如,如果我定义“are”一词可以写成“are”或“r”,而“you”一词可以写成“you”或“u”,那么按照“你好”这一行传递信息的预期输出将是:

  • “你好吗?”
  • “你好吗?”
  • “你好吗?”
  • “你怎么样?”
我考虑过可以使用枚举来表示单词类型,例如:

public enum Word  
{  
  Are,  
  You  
}  
并使用某种帮助器方法返回可能使用的数组:

public static string GetVariants(Word w)  
{
 switch(w)
 {
   case Word.Are:
   return new string[] { "are", "r" };
   case Word.You:
   return new string[] { "you", "u"};
 }
但我似乎找不到一个合适的方法来定义一个句子,使用固定字符串和这些可变单词类型标识符的组合,并创建可能的组合


单词需要按照正确的顺序书写,我只需要能够生成许多不同的方式来书写相同的东西。一旦我有了这方面的东西,我也希望它不仅仅适用于这个特殊的句子结构。这可能吗?

如果有人遇到类似的问题,我最终通过使用Eric Lippert的笛卡尔乘积解决方案,实现了我想要的效果: