乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      笛卡兒積

       昵稱10504424 2012-09-10

      在進(jìn)行商品屬性模塊設(shè)計(jì)的時(shí)候,同一個(gè)商品可能有不同的屬性,不同值,這個(gè)時(shí)候,就會(huì)進(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è)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多