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