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>

C#/JS 获取二维数组组合的更多相关文章

  1. php 将一个或多个二维数组组合成一个二维数组并根据某个字段排序排序

    最近再写项目的时候,碰到一个问题:如何将一个或多个二维数组组合成一个二维数组并根据某个字段排序排序:实在是想不到哪个php库中有哪个函数能实现,只能自己写一个了,将代码写出来后,发现自己的代码繁琐,并 ...

  2. 二维数组过滤,根据多个条件获取二维数组中指定的arr

    /** * 二维数组过滤,根据多个条件获取二维数组中指定的arr * @param $data_arr * @param $lm_number * @param $source_type * @par ...

  3. PHP 如何获取二维数组中某个key的集合(高性能查找)

    分享下PHP 获取二维数组中某个key的集合的方法. 具体是这样的,如下一个二维数组,是从库中读取出来的. 代码: $user = array( 0 => array( 'id' => 1 ...

  4. C++获取二维数组的元素个数

    C/C++获取二维数组的大小/长度/元素个数 ][]; ]) /

  5. PHP获取二维数组指定字段值的和

    array_sum(array_column($arr, 'num')); //获取二维数组 num字段的和 $arr = [ [ 'device_uid' => '123456', 'num' ...

  6. JS的二维数组

    今天,记录一下JS的二位数组,并附上例题. 一.二维数组的本质:数组中的元素又是数组. 其实,我们都见过这样的二维数组,只不过没在意罢了,例如: var arr = [[1,2,4,6],[2,4,7 ...

  7. PHP 获取二维数组中某个key的集合

    本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享. 具体是这样的,如下一个二维数组,是从库中读取出来的. 代码清单: $user = array( 0 => array( 'id'  ...

  8. php获取二维数组中某一列的值集合

    $result //二维数组$uid_list = array_column($result, 'uid');

  9. 用js实现二维数组的旋转

    我最近因为做了几个小游戏,用到了二维数组,其中有需求将这个二维数组正翻转 90°,-90°,180°. 本人是笨人,写下了存起来. 定义的基本二位数组渲染出来是这种效果. 现在想实现的结果是下面的效果 ...

随机推荐

  1. cocoapods卸载与安装的各种坑

    在mac上安装cocoapods,一路的坑啊,无数报错啊有木有! 本以为安装很简单,mac下都自带ruby,使用ruby的gem命令即可下载安装: $ sudo gem install cocoapo ...

  2. 初识JavaScript,Ajax,jQuery,并比较三者关系

    一.基本认识 1.JavaScript 定义: javaScript的简写形式就是JS,是由Netscape公司开发的一种脚本语言,一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态 ...

  3. MicroStation VBA基础

    实习笔记1 2016年8月1日 14:12 Option Explicit 缺省情况下,如果使用一个没有声明的变量,它将继承“Variant”类型.在模块.窗体和类的通用声明区使用“OptionExp ...

  4. (转) 一步一步学习ASP.NET 5 (一)- 基本概念和环境配置

    转发:微软MVP 卢建晖 的文章,希望对大家有帮助. 编者语:时代在变,在csdn开博一年就发了那么的两篇文章,无论是什么原因都觉得有愧了.但是今年重心都会在这里发表一些文章,和大家谈谈.NET, 移 ...

  5. Redis客户端开发包:Jedis学习-入门

    添加Jedis依赖 我们可以使用以下三种方式来添加Jedis依赖. 1.下载jar文件 从http://search.maven.org/下载最近的jedis包和Apache Commons Pool ...

  6. 编写可测试的JavaScript代码

    <编写可测试的JavaScript代码>基本信息作者: [美] Mark Ethan Trostler 托斯勒 著 译者: 徐涛出版社:人民邮电出版社ISBN:9787115373373上 ...

  7. Sql Server之旅——第八站 复合索引和include索引到底有多大区别?

    周末终于搬进出租房了,装了宽带....才发现没网的日子...那是一个怎样的与世隔绝呀...再也受不了那样的日子了....好了,既然网 安上去了,还得继续我的这个系列. 索引和锁,这两个主题对我们开发工 ...

  8. 【SQL篇章--基于MySQL5.7--创建用户】

    SQL:   创建用户:>=MySQL5.7.6 查看用户: mysql> select user,host,authentication_string from mysql.user; ...

  9. jQuery简单入门(二)

    2.Dom操作 A.DOM分类 个人认为在jQuery中这些分类被弱化了,有兴趣的读者可以自行补充这方面的知识: aa.DOM Core bb.HTML -DOM cc. CSS-DOM B.jQue ...

  10. cocosstdio之字体之文本和FNT字体

    FNT字体和文本字体的作用是:导入字体资源可以使用字体资源便可以使用其资源内的字体来在程序中使用 不同的是FNT字体资源内容比较少,所以个人猜想可以在特定情况下使用: 两种字体资源对比: 赋值过程对比 ...