共两百分,求挑战排列组合问题 问题详细地址:http://bbs.csdn.net/topics/390523434那边板块人气差一点,发这里来晒一晒。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { string[] en = { "A", "B", "C" }; string[] num = { "1", "2", "3" }; var result = Arrange(en).SelectMany(x => Arrange(num).Select(y => new { x, y })) .Select(x => string.Join(" ", x.x.Zip(x.y, (a, b) => a + b).ToArray())); foreach (string item in result) { Console.WriteLine(item); } } static IEnumerable<IEnumerable<T>> Arrange<T>(IEnumerable<T> data) where T : IComparable { var query = data.Select(x => new List<T>() { x }); for (int i = 0; i < data.Count() - 1; i++ ) { query = query.SelectMany(x => data.Where(y => !x.Contains(y)).Select(y => x.Concat(new List<T>() { y }).ToList())); } return query; } }}A1 B2 C3A1 B3 C2A2 B1 C3A2 B3 C1A3 B1 C2A3 B2 C1A1 C2 B3A1 C3 B2A2 C1 B3A2 C3 B1A3 C1 B2A3 C2 B1B1 A2 C3B1 A3 C2B2 A1 C3B2 A3 C1B3 A1 C2B3 A2 C1B1 C2 A3B1 C3 A2B2 C1 A3B2 C3 A1B3 C1 A2B3 C2 A1C1 A2 B3C1 A3 B2C2 A1 B3C2 A3 B1C3 A1 B2C3 A2 B1C1 B2 A3C1 B3 A2C2 B1 A3C2 B3 A1C3 B1 A2C3 B2 A1Press any key to continue . . . 版主老是喜欢LINQ,数据量大了会出问题的; linq中where条件怎样拼接? Winfrm中在Form1中添加一个panel容器,然后代码创建Label加到容器中,怎么为创建的Label添加事件 初学C#,显示图片的,怎么也做不对了.谁能帮帮我? 菜鸟求救啊!各位大虾帮我看看下面程序错在什么地方????? C#版计算器 求救C# 与matlab的接口问题 river168你看看我的帖子,麻烦帮解决了,谢谢!! Emgu.CV.Capture同时打开多个摄像头的问题 各位朋友,有哪位用VS.NET2003中的發開手機的系統!!UP者有分 中国的软件路在何方 流导出excel在单元格内加换行符 初学Linq,求指教
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string[] en = { "A", "B", "C" };
string[] num = { "1", "2", "3" };
var result = Arrange(en).SelectMany(x => Arrange(num).Select(y => new { x, y }))
.Select(x => string.Join(" ", x.x.Zip(x.y, (a, b) => a + b).ToArray()));
foreach (string item in result)
{
Console.WriteLine(item);
}
} static IEnumerable<IEnumerable<T>> Arrange<T>(IEnumerable<T> data) where T : IComparable
{
var query = data.Select(x => new List<T>() { x });
for (int i = 0; i < data.Count() - 1; i++ )
{
query = query.SelectMany(x => data.Where(y => !x.Contains(y)).Select(y => x.Concat(new List<T>() { y }).ToList()));
}
return query;
}
}
}A1 B2 C3
A1 B3 C2
A2 B1 C3
A2 B3 C1
A3 B1 C2
A3 B2 C1
A1 C2 B3
A1 C3 B2
A2 C1 B3
A2 C3 B1
A3 C1 B2
A3 C2 B1
B1 A2 C3
B1 A3 C2
B2 A1 C3
B2 A3 C1
B3 A1 C2
B3 A2 C1
B1 C2 A3
B1 C3 A2
B2 C1 A3
B2 C3 A1
B3 C1 A2
B3 C2 A1
C1 A2 B3
C1 A3 B2
C2 A1 B3
C2 A3 B1
C3 A1 B2
C3 A2 B1
C1 B2 A3
C1 B3 A2
C2 B1 A3
C2 B3 A1
C3 B1 A2
C3 B2 A1
Press any key to continue . . .