当前位置: 首页 > 编程语言 > C#

findpossiblecombinationslinq分享

时间:2023-04-11 00:24:11 C#

findpossiblecombinationslinq我需要生成{"a","b","c"}之间所有可能的组合。例如输入集为{"a","b","c"},期望输出为{"a","b","c""ab","ac","bc",“abc”}。听起来你要找的基本上是一个动力装置。这是一个简单的实现(取自该站点):publicIEnumerable>GetPowerSet(thisIListlist){returnfromminEnumerable.Range(0,1请注意,您将无法将此方法用于具有超过30个元素。我不建议尝试使用包含那么多元素的列表,因为在30个元素时,结果集将包含230或1073741824个元素。您可以使用此方法获得所需的结果publicIEnumerableGetPermutations(IListstrings){returnfromsinstrings.GetPowerSet()selectstring.Concat(s);}但是,因为幂集包含空集,所以这实际上会返回结果{"","a","b","c","ab","ac","bc","abc"}。要过滤掉空字符串,请使用以下命令:publicIEnumerableGetPermutations(IListstrings){returnfromsinstrings.GetPowerSet()letstr=string.Concat(s)wherestr.Length>0//excludenullsetresultselectstr;}或者更简单:以上是C#学习教程:找到linq分享的所有内容的可能组合。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注---publicIEnumerableGetPermutations(IListstrings){returnfromsinstrings.GetPowerSet().Skip(1)select字符串.Concat(s);}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: