最近做的array string类型对比。这个可能比较复杂,用的是linq 是请教别人的,我在这里记录一下

jquery 方法里面的数组

function arrtxt() {

var arrt= [];
arrt.push('测试', '女', '124563', '');
arrt.push('小城市', '女', '8593431', '66867857857');
arrt.push('小路与', '男', '8593431', '498464');

var arrs = [];
arrs.push('小于', '女', '123123123', '' );
arrs.push('小城市', '女', '8593431', '66867857857');
arrs.push('小周', '男', '8593431', '498464');

$.ajax({
url: "ArrList.ashx?opt=arr&arrt=" + arrt+ "&arrs =" + arrs ,
type: "post",
success: function (date) {

var u = $.parseJSON(date);

var kref = u.ker

var tdker = u.td

var tab="<table>";

for (var i = 0; i< kref.length; i++) {

tab="<tr><td><span>" + kref[i].krname + "</span></td。";

tab+= "<td> <span>" + kref[i].krvisa + "</span></td></tr>";

}

tab+="</table>";

}

后台ashx页面

获取页面参数

  public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Charset = "utf-8"; string opt = context.Request.Params["opt"].ToString().Trim();
string html = "";
switch (opt)
{
case "arr":
html = Getarr(context);
break;
}
context.Response.Write(htm);
}

获取的参数

   #region  Astring数组对比
public string GetArr(HttpContext context)
{
JObject jo = new JObject();
JObject jotd = new JObject();
JObject jakr = new JObject();
string[] arrkr = new string[] {};
#region
string kerens = "";
if (!string.IsNullOrEmpty(context.Request.Params["arrt"]))
{
kerens = context.Request.Params["krres"].ToString().Trim();
if (kerens.Length > && kerens != "")
{
arrkr = kerens.Split(',');
}
}
string tdcz = "";
string[] arrtd = new string[] { };
if (!string.IsNullOrEmpty(context.Request.Params["arrs"]))
{
tdcz = context.Request.Params["tdds"].ToString().Trim();
if (tdcz.Length > && tdcz != "")
{
arrtd = tdcz.Split(',');
}
}
List<string> arrkrsd = new List<string>();
string[] krstr = new string[] { };
for (int i = , j = ; i < Math.Ceiling(arrkr.Length / 4m); i++, j = j + )
{
krstr = (SplitArray(arrkr, j, ));
arrkrsd.Add(krstr[] + "," + krstr[] + "," + krstr[] + "," + krstr[] );
arrkrsd.ToArray();
}
var krsd = arrkrsd.Distinct().ToArray();
List<string> arrtdsd = new List<string>();
string[] tdstr = new string[] { };
for (int i = , j = ; i < Math.Ceiling(arrtd.Length / 4m); i++, j = j + )
{
tdstr = (SplitArray(arrtd, j, ));
arrtdsd.Add(tdstr[] + "," + tdstr[] + "," + tdstr[] + "," + tdstr[] );
arrtdsd.ToArray();
}
var tdsd=arrtdsd.Distinct().ToArray();
var combine =
krsd.Concat(tdsd) // 合并
.Distinct() // 去掉重复项
.ToArray(); // 通过Linq进行left join, 得到数组A
var Kre =
(from cItem in combine
join aItem in krsd on cItem equals aItem into ps
from p in ps.DefaultIfEmpty()
select p).ToArray(); // 通过Linq进行left join, 得到数组B
var TD =
(from cItem in combine
join bItem in tdsd on cItem equals bItem into ps
from p in ps.DefaultIfEmpty()
select p).ToArray(); JObject newkr = new JObject();//新——客人
JObject newtd = new JObject();//新——团队
JArray jkt = new JArray();//新—客人
JArray jtd = new JArray();//新——团队
string[] ku = new string[] { };
for (int i = ; i < Kre.Length; i++)
{
newkr = new JObject();//新——客人
ku = new string[] { };
string j = Kre[i];
if (string.IsNullOrEmpty(j))
{
newkr.Add("krname", "");
newkr.Add("krsex", "");
newkr.Add("krmobile", "");
newkr.Add("krsfz", "");
}
else
{
ku = j.Split(',');
newkr.Add("krname", ku[]);
newkr.Add("krsex", ku[]);
newkr.Add("krmobile", ku[]);
newkr.Add("krsfz", ku[]);
}
jkt.Add(newkr);
}
string[] kutt = new string[] { };
for (int k = ; k < TD.Length; k++)
{
newtd = new JObject();//新——团队
kutt = new string[] { };
string ty = TD[k];
if (string.IsNullOrEmpty(ty))
{
newtd.Add("tdname", "");
newtd.Add("tdsex", "");
newtd.Add("tdmobile", "");
newtd.Add("tdsfz", ""); }
else
{
kutt = ty.Split(',');
newtd.Add("tdname", kutt[]);
newtd.Add("tdsex", kutt[]);
newtd.Add("tdmobile", kutt[]);
newtd.Add("tdsfz", kutt[]);
}
jtd.Add(newtd);
}
jo.Add("ker", jkt);
jo.Add("td", jtd); return jo.ToString(); }
//分隔数组
public static string[] SplitArray(string[] Source, int StartIndex, int Len)
{
string[] result = new string[Len];
for (int i = ; i < Len; i++)
{
result[i] = i + StartIndex > Source.Length - ? "" : Source[i + StartIndex];
}
return result;
}
#endregion

后台ashx

<span>" + ker[w].krname + "</span>

<span>" + td[w].tdname+ "</span>

#region  客人名单对比        public string GetContrast(HttpContext context)        {            JObject jo = new JObject();            JObject jotd = new JObject();            JObject jakr = new JObject();            string[] arrkr = new string[] {};            #region            string kerens = "";//客人名单            if (!string.IsNullOrEmpty(context.Request.Params["krres"]))            {                kerens = context.Request.Params["krres"].ToString().Trim();                if (kerens.Length > 0 && kerens != "")                {                    arrkr = kerens.Split(',');                }            }            string tdcz = "";//客人名单            string[] arrtd = new string[] { };            if (!string.IsNullOrEmpty(context.Request.Params["tdds"]))            {                tdcz = context.Request.Params["tdds"].ToString().Trim();                if (tdcz.Length > 0 && tdcz != "")                {                    arrtd = tdcz.Split(',');                }            }            List<string> arrkrsd = new List<string>();            string[] krstr = new string[] { };            for (int i = 0, j = 0; i < Math.Ceiling(arrkr.Length / 10m); i++, j = j + 10)            {                krstr = (SplitArray(arrkr, j, 10));                arrkrsd.Add(krstr[0] + "," + krstr[1] + "," + krstr[2] + "," + krstr[3] + "," + krstr[4] + "," + krstr[5] + "," + krstr[6] + "," + krstr[7] + "," + krstr[8] + "," + krstr[9]);                arrkrsd.ToArray();            }            var krsd = arrkrsd.Distinct().ToArray();            List<string> arrtdsd = new List<string>();            string[] tdstr = new string[] { };            for (int i = 0, j = 0; i < Math.Ceiling(arrtd.Length / 10m); i++, j = j + 10)            {                tdstr = (SplitArray(arrtd, j, 10));                arrtdsd.Add(tdstr[0] + "," + tdstr[1] + "," + tdstr[2] + "," + tdstr[3] + "," + tdstr[4] + "," + tdstr[5] + "," + tdstr[6] + "," + tdstr[7] + "," + tdstr[8] + "," + tdstr[9]);                arrtdsd.ToArray();            }           var  tdsd=arrtdsd.Distinct().ToArray();            var combine =                krsd.Concat(tdsd) // 合并                .Distinct() // 去掉重复项                .ToArray();
            // 通过Linq进行left join, 得到数组A            var Kre =                (from cItem in combine                 join aItem in krsd on cItem equals aItem into ps                 from p in ps.DefaultIfEmpty()                 select p).ToArray();
            // 通过Linq进行left join, 得到数组B            var TD =                (from cItem in combine                 join bItem in tdsd on cItem equals bItem into ps                 from p in ps.DefaultIfEmpty()                 select p).ToArray();
            JObject newkr = new JObject();//新——客人            JObject newtd = new JObject();//新——团队            JArray jkt = new JArray();//新—客人            JArray jtd = new JArray();//新——团队            string[] ku = new string[] { };            for (int i = 0; i < Kre.Length; i++)            {                newkr = new JObject();//新——客人                ku = new string[] { };                string j = Kre[i];                if (string.IsNullOrEmpty(j))                {                    newkr.Add("krname", "");                    newkr.Add("krsex", "");                    newkr.Add("krmobile", "");                    newkr.Add("krsfz", "");                    newkr.Add("krvisa", "");                    newkr.Add("krtypepass", "");                    newkr.Add("kren", "");                    newkr.Add("krcountry", "");                    newkr.Add("krhit", "");                    newkr.Add("krguestuu", "");
                }                else                {                    ku = j.Split(',');                    newkr.Add("krname", ku[0]);                    newkr.Add("krsex", ku[1]);                    newkr.Add("krmobile", ku[2]);                    newkr.Add("krsfz", ku[3]);                    newkr.Add("krvisa", ku[4]);                    newkr.Add("krtypepass", ku[5]);                    newkr.Add("kren", ku[6]);                    newkr.Add("krcountry", ku[7]);                    newkr.Add("krhit", ku[8]);                    newkr.Add("krguestuu", ku[9]);                }                jkt.Add(newkr);            }            string[] kutt = new string[] { };            for (int k = 0; k < TD.Length; k++)            {                newtd = new JObject();//新——团队                kutt = new string[] { };                string ty = TD[k];                if (string.IsNullOrEmpty(ty))                {                    newtd.Add("tdname", "");                    newtd.Add("tdsex", "");                    newtd.Add("tdmobile", "");                    newtd.Add("tdsfz", "");                    newtd.Add("tdvisa", "");                    newtd.Add("tdtypepass", "");                    newtd.Add("tden", "");                    newtd.Add("tdcountry", "");                    newtd.Add("tdhit", "");                    newtd.Add("tdguestuu", "");
                }                else                {                     kutt = ty.Split(',');                    newtd.Add("tdname", kutt[0]);                    newtd.Add("tdsex", kutt[1]);                    newtd.Add("tdmobile", kutt[2]);                    newtd.Add("tdsfz", kutt[3]);                    newtd.Add("tdvisa", kutt[4]);                    newtd.Add("tdtypepass", kutt[5]);                    newtd.Add("tden", kutt[6]);                    newtd.Add("tdcountry", kutt[7]);                    newtd.Add("tdhit", kutt[8]);                    newtd.Add("tdguestuu", kutt[9]);                }                jtd.Add(newtd);            }                      #endregion            #region            //string kr = "";            //          string dt = "";            //          string zo = "";            //int cont = (arrtdsd.Count) + (arrkrsd.Count);            //string[] xarr = new string[cont];            //arrkrsd.CopyTo(xarr, 0);            //arrtdsd.CopyTo(xarr, arrkrsd.Count);//将两个数组合并为一个新数组            //List<string> list = new List<string>();            //for (int i = 0; i < xarr.Length; i++)//删除重复元素            //{            //    if (list.IndexOf(xarr[i].ToLower()) == -1)            //        list.Add(xarr[i]);            //}            //for (int i = 0; i < list.Count; i++)            //{            //    bool tl = false;            //    zo = list[i].ToString();            //    int a = zo.IndexOf(",");            //    string li = "";            //    li = zo.Substring(0, a);            //    if (arrkrsd.Count > arrtdsd.Count)            //    {
            //        for (int j = 0; j < arrkrsd.Count; j++)            //        {            //            kr = arrkrsd[j].ToString();            //            int n = kr.IndexOf(",");            //            string krtt = "";            //            krtt = kr.Substring(0, n);            //            if (li == krtt)            //            {            //                tl = true;            //                newkr.Add("" + i + "", arrkrsd[j]);            //            }            //            if (tl == false)            //            {            //                newkr.Add("" + i + "", "" + "," + "" + "," + "" + "," + "" + "," + "" + "," + "" + "," + "" + "," + "" + "," + "" + "," + "");            //            }            //        }            //        for (int t = 0; t < arrtdsd.Count; t++)            //        {            //            dt = arrtdsd[t].ToString();            //            int tt = dt.IndexOf(",");            //            string dttt = "";            //            dttt = dt.Substring(0, tt);            //            if (kr == dttt)            //            {            //                tl = true;            //                newtd.Add("" + i + "", arrtdsd[t]);            //            }            //            if (tl == false)            //            {            //                newtd.Add("" + i + "", "" + "," + "" + "," + "" + "," + "" + "," + "" + "," + "" + "," + "" + "," + "" + "," + "" + "," + "");            //            }            //        }            //    }            //    else            //    {            //        for (int j = 0; j < arrtdsd.Count; j++)            //        {            //            dt = arrtdsd[j].First().ToString();            //            for (int t = 0; t < arrkrsd.Count; t++)            //            {            //                kr = arrkrsd[t].First().ToString();            //                if (dt == kr)            //                {            //                    tl = true;            //                    newkr.Add(arrkrsd[t]);            //                    newtd.Add(arrtdsd[j]);            //                }            //            }            //            if (tl == false)            //            {            //                newtd.Add(arrtdsd[j]);            //            }
            //        }            //    }            //}            #endregion            jo.Add("ker", jkt);            jo.Add("td", jtd);                        return jo.ToString();
        }        //分隔数组        public static string[] SplitArray(string[] Source, int StartIndex, int Len)        {            string[] result = new string[Len];            for (int i = 0; i < Len; i++)            {                result[i] = i + StartIndex > Source.Length - 1 ? "" : Source[i + StartIndex];            }            return result;        }        #endregion

两个string数组对应比较的更多相关文章

  1. 取两个String数组的交集

    import org.testng.annotations.Test; import java.util.HashMap; import java.util.LinkedList; import ja ...

  2. 【.net】从比较两个字节数组谈起

    上午,有位初学者朋友问:如何比较两个字节数组中各字节是否相等? 不许笑,我一向反对嘲笑初学者,初学者不认真学习时你可以批评,但不能讥嘲.你不妨想想,你自己开始学习编程的时候又是什么个光景? 好,于是, ...

  3. [转载]寻找两个有序数组中的第K个数或者中位数

    http://blog.csdn.net/realxie/article/details/8078043 假设有长度分为为M和N的两个升序数组A和B,在A和B两个数组中查找第K大的数,即将A和B按升序 ...

  4. 关于String类和String[]数组的获取长度方法细节

    一.在Java中,以下代码段有错误的是第(  )行 public static void main(String[] args) { String name = "小新";     ...

  5. 【递归打卡2】求两个有序数组的第K小数

    [题目] 给定两个有序数组arr1和arr2,已知两个数组的长度分别为 m1 和 m2,求两个数组中的第 K 小数.要求时间复杂度O(log(m1 + m2)). [举例] 例如 arr1 = [1, ...

  6. Leetcode#88. Merge Sorted Array(合并两个有序数组)

    题目描述 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 m ...

  7. 两个有序数组长度分别为m,n,最多m+n次查找找出相同的数

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. vb中去掉string数组的一部分

    今天碰到一个问题,登陆的时候,如果不需要验证手机号为空,则不去验证手机号 因为登陆的时候所有的验证信息都存放在一个数组里 Dim CheckUserInfo() As String ={UserBir ...

  9. leetcode实践:找出两个有序数组的中位数

    题目 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 代码实现 package com. ...

随机推荐

  1. ASP转PHP手记

    打算将动易网站管理系统移植到PHP环境中,寻寻觅觅了很多PHP内容管理网站,发现网上有动易转PHPCMS的代码,所以就拿定注意用PHPCMS的在google上找到一转换程序,动手做来还成功了,现将此次 ...

  2. NSThread 、NSRunLoop 和 Dispatch Queue

     iOS多线程编程中,NSOperation和NSOperationQueue无疑是最常用的,它们能满足绝大部分情况下的线程操作.但在完成一些特殊的任务时,我们还是要使用的NSThread和NSRun ...

  3. final关键字的作用

    final 可以修饰类.方法.变量. (1):final修饰的变量是一个常量,只能被赋值一次. 常量一般使用final声明,如: public static final String CHINA = ...

  4. hex和bin文件格式的区别

    Intel HEX文件是记录文本行的ASCII文本文件,在Intel HEX文件中,每一行是一个HEX记录,由十六进制数组成的机器码或者数据常量.Intel HEX文件经常被用于将程序或数据传输存储到 ...

  5. Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解

    俗话说:“十五的月亮十六圆”.那学习是不是也是如此呢?如果把月亮看成是我们的愿望,那十五便是我们所处的“高原期”,坚持迈过这个坎,我相信你的愿望终究会现实的.记得马云曾说:今天很残酷,明天更残酷,后天 ...

  6. CDT+Eclipse代码自动提示

    1.查看GCC的版本:$gcc -v————————————————————————gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)———————— ...

  7. libeXosip2(1-2) -- How-To initiate, modify or terminate calls.

    How-To initiate, modify or terminate calls. The eXtented eXosip stack eXosip2 offers a flexible API ...

  8. UVA10817--状态压缩DP

    第一次做状态压缩dp..没有思路..看书看明白的,不过看完发现汝哥的做法多算了一些东西,完全可以省去不算.. 用两个集合,s1表示恰好有一个人教的科目,s2表示至少有两个人教的科目.d(i,s1,s2 ...

  9. OpenWrt刷机

    http://blog.163.com/l1_jun/blog/static/14386388201441344612/ http://blog.chinaunix.net/uid-25073805- ...

  10. ps&&/proc/pid/xxx

    ps 如果想看一个进程的启动时间,可以用lstart来看 [root@jiangyi02.sqa.zmf /home/ahao.mah] #ps -eo pid,lstart,etime,cmd |g ...