很难的 数组结果比较问题,高手进,谢谢
// 举例:(\t即为TAB分隔符)// job的录入结果 AAA\tBBB\tCCC
// 历史记录1结果 AAA\tDDD\tEEE
// 历史记录2结果 BBB\tFFF\tCCC
// 则输出结果 AAA\t\tCCC
结果先变成 数组,然后再进行比较
job记录与 历史记录比较,如 job[i]与历史记录1[i]比较,如果相等,接着比,否则跟历史2对应项目比较
注意: 比较过相等的 job记录项,下次比较时候不再进行比较,求算法,谢谢 --------------------编程问答-------------------- 自己顶下,急啊 --------------------编程问答-------------------- 没人呢?没人呢? --------------------编程问答-------------------- 实在是看不懂你说什么 --------------------编程问答-------------------- 实在不懂你说的什么,。。。。看你这个标题进来,一头雾水 --------------------编程问答-------------------- 你说的相等则继续比较,那这么说你历史记录1、2都不符合要求,// 则输出结果 AAA\t\tCCC 这个是怎么出来的 --------------------编程问答-------------------- 你的题我大致才出来了,最后的“注意”我还没太明白什么意思。 --------------------编程问答--------------------
string job = "AAA\tBBB\tCCC";--------------------编程问答--------------------
string 历史记录1 = "AAA\tDDD\tEEE";
string 历史记录2 = "BBB\tFFF\tCCC";
string[] jobList = job.Split('\t');
string[] 历史记录1List = 历史记录1.Split('\t');
string[] 历史记录2List = 历史记录2.Split('\t');
for (int i = 0; i < jobList.Length && i < 历史记录1List.Length; i++)
{
if (jobList[i] == 历史记录1List[i])
{
continue;
}
else
{
for (int j = 0; j < 历史记录2List.Length; j++)
{
if (jobList[i] == 历史记录2List[j])
{
break;
}
}
}
}
string job = "AAA\tBBB\tCCC";
string 历史记录1 = "AAA\tDDD\tEEE";
string 历史记录2 = "BBB\tFFF\tCCC";
string result = string.Join("\t", job.Split('\t').Zip(历史记录1.Split('\t'), (x, y) => new { x, y })
.Zip(历史记录2.Split('\t'), (x, z) => new { x.x, x.y, z })
.Where(x => x.x == x.y || x.x == x.z)
.Select(x => x.x).ToArray());
补充:.NET技术 , C#