惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cybersecurity and Infrastructure Security Agency CISA
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Latest news
Latest news
L
LINUX DO - 热门话题
Cisco Talos Blog
Cisco Talos Blog
S
Securelist
T
Threatpost
AWS News Blog
AWS News Blog
P
Privacy & Cybersecurity Law Blog
C
CERT Recently Published Vulnerability Notes
B
Blog RSS Feed
T
Threat Research - Cisco Blogs
P
Proofpoint News Feed
T
Tor Project blog
P
Palo Alto Networks Blog
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
云风的 BLOG
云风的 BLOG
H
Help Net Security
小众软件
小众软件
C
Cisco Blogs
有赞技术团队
有赞技术团队
Cyberwarzone
Cyberwarzone
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
S
Schneier on Security
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
The Register - Security
The Register - Security
Project Zero
Project Zero
Hugging Face - Blog
Hugging Face - Blog
The Cloudflare Blog
V
Vulnerabilities – Threatpost
Security Latest
Security Latest
爱范儿
爱范儿
A
About on SuperTechFans
T
The Exploit Database - CXSecurity.com
P
Privacy International News Feed
A
Arctic Wolf
大猫的无限游戏
大猫的无限游戏
V
V2EX
Stack Overflow Blog
Stack Overflow Blog
K
Kaspersky official blog
Scott Helme
Scott Helme
Spread Privacy
Spread Privacy
The Hacker News
The Hacker News
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - 飞花雪月

ASP.NET Core-wwwroot文件夹 ASP.NET MVC4中的bundles特性引发服务器拒绝访问(403错误) 两步验证Authy时间同步问题 您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧 教你如何调用百度编辑器ueditor的上传图片、上传文件等模块 Easyui Tree方法扩展 - getLevel(获取节点级别) HTML5添加 video 视频标签后仍然无法播放的解决方法 IIS添加MIEI类型 ASP.NET性能优化之减少请求 ASP.NET中获取当日,当周,当月,当年的日期 Convert.ToInt32()与int.Parse()的区别 【转】浅析Sql Server参数化查询 【转】Sql Server参数化查询之where in和like实现之xml和DataTable传参 【转】Sql Server参数化查询之where in和like实现详解 推薦使用 Microsoft Anti-Cross Site Scripting Library V3.0 推薦使用 Microsoft Anti-Cross Site Scripting Library v3.1 IIS中ASP.NET安全配置 好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) iframe在ipad safari的显示 从WEB SERVICE 上返回大数据量的DATASET
C#/JS 获取二维数组组合
飞花雪月 · 2015-01-09 · via 博客园 - 飞花雪月

C#获取二维数组组合

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace HF.SHOP.WebSite
{
    public partial class Demo : System.Web.UI.Page
    {

        List<List<string>> P_StringLL = new List<List<string>>();
        List<string> P_tmpStrL = new List<string>();

        protected void Page_Load(object sender, EventArgs e)
        {
            List<string> al = new List<string>();
            al.Add("红色");
            al.Add("黑色");
            al.Add("紫色");
            al.Add("白色");
            P_StringLL.Add(al);

            al = new List<string>();
            al.Add("小号");
            al.Add("中号");
            al.Add("大号");
            al.Add("加大号");
            P_StringLL.Add(al);

            al = new List<string>();
            al.Add("男同志");
            al.Add("女同志");

            P_StringLL.Add(al);

            GroupArray("", P_StringLL, 0);

            StringBuilder sb = new StringBuilder();

            foreach (string  str in P_tmpStrL)
            {
                sb.AppendLine(str + "<br/>");
            }

            Label1.Text = "总共有:" + P_tmpStrL.Count.ToString() + "种组合";
            Label2.Text = sb.ToString();
        }

        //组合计算
        void GroupArray(string tmpStr, List<List<string>> strLL, int index)
        {
            int count = strLL.Count;

            if (count <= index)
            {
                if (tmpStr.Length > 0)
                {
                    P_tmpStrL.Add(tmpStr);
                }

                return;
            }

            List<string> strL = strLL[index];

            foreach (string str in strL)
            {
                GroupArray(tmpStr + str, strLL, index + 1);
            }

        }
    }
}

JS代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="HF.SHOP.WebSite.Demo" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script src="UIResources/scripts/jquery.min.2.0.0.js"></script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
        <asp:Label ID="Label2" runat="server" Text=""></asp:Label>
        
        <div id="cou"></div>
        <ul id="list">

        </ul>
    </div>
    </form>

    <script type="text/javascript">

        var array = [['红色', '黑色', '白色'], ['小号', '中号', '加大'], ['男', '女']];
        var results = new Array(); //创建一个数组
        var len = array.length;
        var indexs = {};


        $(document).ready(function () {
            GetResults(-1);

            $("#cou").html("共有" + results.length + "种组合;<br/>");
            for (var a = 0; a < results.length; a++)
            {
                $("#list").append("<li>" + results[a] + "</li>");
            }
        });

        function GetResults(start) {
            start++;
            if (start > len - 1) {
                return;
            }
            if (!indexs[start]) {
                indexs[start] = 0;
            }
            if (!(array[start] instanceof Array)) {
                array[start] = [array[start]];
            }
            for (indexs[start] = 0; indexs[start] < array[start].length; indexs[start]++) {
                GetResults(start);
                if (start == len - 1) {
                    var temp = [];
                    for (var i = len - 1; i >= 0; i--) {
                        if (!(array[start - i] instanceof Array)) {
                            array[start - i] = [array[start - i]];
                        }
                        temp.push(array[start - i][indexs[start - i]]);
                    }
                    results.push(temp);
                }
            }

        }
    </script>
</body>
</html>