一个简单问题

cindyAng 2005-08-25 06:24:33
string [] str1 = {0,1,2,3};
string [] str2 = {0,3};
两字符串数组比较,如何得到数组str3 = {1,2}?
...全文
95 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
swordragon 2005-08-26
  • 打赏
  • 举报
回复
string [] str1 = {"0","1","2","3"};
string [] str2 = {"0","3","4"};

ArrayList str3 = new ArrayList();
for (int i = 0; i < str1.Length; i++)
{
if (Array.IndexOf(str2,str1[i]) < 0)
{
str3.Add(str1[i]);
}
}

for (int i = 0; i < str2.Length; i++)
{
if (Array.IndexOf(str1,str2[i]) < 0)
{
str3.Add(str2[i]);
}
}

可以找出两个数组之间的差集。
cindyAng 2005-08-26
  • 打赏
  • 举报
回复
如何去除,其实我一开始的写法和你一样,后来发现错了,但又不知如何去弄,数据结构学得太差了,高手出的啊
GDNPC 2005-08-26
  • 打赏
  • 举报
回复
对,我承认错误,写得太快没细想,添加之后还要去掉数组中原来的值,不然会重复添加
futurewind 2005-08-25
  • 打赏
  • 举报
回复
楼上的right!
coldpanth 2005-08-25
  • 打赏
  • 举报
回复
2楼的方法得到的结果应该是不正确的

当j = 3 时,if(str1[j]!=str2[i]) 此时的str2[0]是等于0的,所以str3集合被错误的加上了3这个元素

偶对数据结构了解的不多,但是大概有个思路,就是在内循环里加一个判断,不能只Add,如果,内层元素包含在外层元素中,就应该从str3 中去掉这个元素
foxconn_nich 2005-08-25
  • 打赏
  • 举报
回复
顶楼正确
fish__net 2005-08-25
  • 打赏
  • 举报
回复
双重循环
WeekZero 2005-08-25
  • 打赏
  • 举报
回复
楼上,双重循环就得到了
GDNPC 2005-08-25
  • 打赏
  • 举报
回复
ArrayList str3;
for(int i=0;i<str2.Length;i++)
{
for(int j=0;j<str1.Length;i++)
{
if(str1[j]!=str2[i])
str3.Add(str1[j];
}
}

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧