.net下纯代码实现求两个集合的笛卡尔积

时间:2022-09-21 10:21:56

使用环境:

  1、.net 3.5,因为要使用linq(为什么用LINQ,因为小弟算法比较差,不会写算法直接实现.......)

  2、求两个list<string>的笛卡尔积,结果为另一个list<string>(别的似乎也可以吧,没实验过)

 

开始:

  个人感觉其实原理很简单,就是使用LINQ来模仿SQL里面的FROM语句来实现对两个集合求笛卡尔积,直接上代码吧

 

.net下纯代码实现求两个集合的笛卡尔积.net下纯代码实现求两个集合的笛卡尔积代码
            List < string >  redSource  =   new  List < string >  {  " 01 " " 02 " " 030 "  };
            List
< string >  blueSource  =   new  List < string >  {  " 01 " " 02 " " 030 "  };
            IEnumerable
< string >  result  =  from red  in  redSource from blue  in  blueSource select red  +  blue;
            List
< string >  resultColor  =  result.ToList < string > ();

 这个链接的是两个string,如果链接的两个数据类型属于数字,还可以把“+”号改成相应的运算符

 运行结果如下:

.net下纯代码实现求两个集合的笛卡尔积

代码虽然简单,不过中间实现的原理确是有点复杂,小弟也是参考了网上的文章,不过如果仅仅是使用的话这应该就已经够了

有兴趣的朋友也可以研究下

http://morganchengmo.spaces.live.com/blog/cns!9950CE918939932E!3822.entry

 

文笔又限,欢迎拍砖

 

好了,结束  嘿嘿