Csharp/C#教程:C#中实现任意List的全组合算法代码分享

代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;

namespace算法
{
   class全组合算法
   {
       [Flags]
       publicenumPersonType
       {
           Audit=1,
           Child=2,
           Senior=4
       }

       publicstaticvoidRun(string[]args)
       {
           varlstSource=GetEnumList<PersonType>();
           varlstComb=FullCombination(lstSource);
           varlstResult=newList<PersonType>();
           lstComb.ForEach(item=>
           {
               lstResult.Add(item.Aggregate((result,source)=>result|source));
           });
       }

       publicstaticList<T>GetEnumList<T>()
       {
           varlst=newList<T>();
           foreach(TiteminEnum.GetValues(typeof(T)))
           {
               lst.Add(item);
           }
           returnlst;
       }

       //全组合算法
       publicstaticList<List<T>>FullCombination<T>(List<T>lstSource)
       {
           varn=lstSource.Count;
           varmax=1<<n;
           varlstResult=newList<List<T>>();
           for(vari=0;i<max;i++)
           {
               varlstTemp=newList<T>();
               for(varj=0;j<n;j++)
               {
                   if((i>>j&1)>0)
                   {
                       lstTemp.Add(lstSource[j]);
                   }
               }
               lstResult.Add(lstTemp);
           }
           lstResult.RemoveAt(0);
           returnlstResult;
       }

   }
}

您可能感兴趣的文章:C#生成指定范围内的不重复随机数C#生成不重复随机字符串类C#生成唯一不重复订单号C#随机生成不重复字符串的两个不错方法C#不重复输出一个数组中所有元素的方法C#实现在购物车系统中生成不重复订单号的方法c#两个数组比较,将重复部分去掉,返回不重复部分的实现C#实现排列组合算法完整实例C#查找字符串所有排列组合的方法C#实现组合排列的方法详解C#的排列组合C#实现生成所有不重复的组合功能示例

标签: 算法 st

C# Hook钩子实例代码 截取键盘输入

C语言实现输入一颗二元查找树并将该树转换为它的镜像

上述就是C#学习教程:C#中实现任意List的全组合算法代码分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/904807.html

(0)
上一篇 2021年10月22日
下一篇 2021年10月22日

精彩推荐