久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

笛卡兒積

 昵稱10504424 2012-09-10

在進(jìn)行商品屬性模塊設(shè)計(jì)的時(shí)候,,同一個(gè)商品可能有不同的屬性,,不同值,這個(gè)時(shí)候,,就會進(jìn)行不同的組合,,于是就產(chǎn)生了SKU的概念,在這里比如說某個(gè)用戶選擇了一個(gè)商品了,,這個(gè)商品與如下的屬性和值,,例如:以1開頭的是一種屬性,"_"后邊的為屬性值,,以此類推,,那么可以組成多少個(gè)不同的組合?,,組合一:1_22&2_4&6_333&7_77.....怎么用程序去實(shí)現(xiàn)呢,?

復(fù)制代碼
 1 //產(chǎn)生的集合,這個(gè)集合的屬性個(gè)數(shù)是不確定的
 2 List<string> listStrs = new List<string>()
 3                                         {
 4                                             "1_22",
 5                                             "1_33",
 6                                             "1_34",
 7                                             "2_4",
 8                                             "2_32",
 9                                             "2_54",
10                                             //"6_333",
11                                             //"6_66",
12                                             //"7_77",
13                                             //"7_89"
14                                         };
15  //先分組
16             var groups = from str in listStrs
17                          group str by str.Split('_')[0] into g 
18                          select g;
19 
20             List<string> strResult = new List<string>();//定義最后的結(jié)果集合
21 
22             //遍歷每個(gè)組
23             foreach (var groupStr in groups)
24             {
25                 List<string> temp = new List<string>();//定義臨時(shí)集合
26                 foreach (var item in groupStr)//遍歷組內(nèi)的所有的項(xiàng)
27                 {
28                     if (strResult.Count() <= 0)//如果是第一個(gè)分組遍歷那么只需要直接將分組的集合放到 臨時(shí)集合,,再放到最終集合
29                     {
30                         temp.Add(item);
31                     }
32                     else
33                     {
34                         //如果是第二個(gè)組之后的邏輯那么就 做組內(nèi)的每個(gè)項(xiàng)跟 最終集合做笛卡爾積
35                         foreach (var target in strResult)//做最終集合跟 當(dāng)前組的組合乘積
36                         {
37                             temp.Add(target + "&" + item);//將項(xiàng)的相乘的結(jié)果做成組合項(xiàng)
38                         }
39                     }
40                 }
41                 strResult.Clear();//清空之前的數(shù)據(jù)
42                 strResult.AddRange(temp);//將臨時(shí)集合的數(shù)據(jù)放到最終的結(jié)果集合里去
43             }
復(fù)制代碼

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多