n从1到m的所有组合:
static void Main()
{
string[] arr = new string[] { "a", "b", "c", "d", "e" };
List<string[]> list = new List<string[]>();
foreach (string s in arr)
{
List<string[]> lst = list.GetRange(0, list.Count);
string[] nArr = { s };
list.Add(nArr);
foreach (string[] ss in lst)
{
list.Add(ss.Concat(nArr).ToArray());
}
}
List<string[]> outList = list.OrderByDescending(p => p.Length).ToList();
outList.ForEach(p => Console.WriteLine(string.Join(",", p)));
}
n以内的所有组合:
static void Main()
{
string[] arr = new string[] { "a", "b", "c", "d", "e" };
int n = 2;//长度为2以内的所有组合
List<string[]> list = new List<string[]>();
foreach (string s in arr)
{
List<string[]> lst = list.Where(p => p.Length < n).ToList();
string[] nArr = { s };
list.Add(nArr);
foreach (string[] ss in lst)
{
list.Add(ss.Concat(nArr).ToArray());
}
}
List<string[]> outList = list.OrderByDescending(p => p.Length).ToList();
outList.ForEach(p => Console.WriteLine(string.Join(",", p)));
}
本文详细介绍了如何使用C#编程语言实现从1到m的所有元素组合,并展示了如何获取特定长度内的组合,包括代码实现、流程解析以及输出展示。
263





