代码如下:
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#实现生成所有不重复的组合功能示例
C# Hook钩子实例代码 截取键盘输入
C语言实现输入一颗二元查找树并将该树转换为它的镜像
上述就是C#学习教程:C#中实现任意List的全组合算法代码分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/904807.html