C#比较取出重复数据

你今天机器学习了么 2020-05-21 10:15:50




两个list:
list a = 2 2 3 3
list b = 2 2 2 2 3
想得出结果:
2 2 3
我试过用Union以及intersection貌似结果是2 3 ,求帮助
...全文
223 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuqiz1981 2020-05-22
  • 打赏
  • 举报
回复
如上面一样写一个方法,写两个循环,在内循环里b[j]判断是否等于a[i],等于a[i]就添加到新list
杀马特丶蛮牛 2020-05-21
  • 打赏
  • 举报
回复

string str1 = "2233";
            string str2 = "22223";
            int[,] num = new int[str1.Length, str2.Length];
            int maxLen = 0; 
            int lastSubsBegin = 0;
            StringBuilder sequenceBuilder = new StringBuilder();
            for (int i = 0; i < str1.Length; i++)
            {
                for (int j = 0; j < str2.Length; j++)
                {
                    if (str1[i] != str2[j])
                        num[i, j] = 0;
                    else
                    {
                        if (i == 0 || j == 0)
                            num[i, j] = 1;
                        else
                            num[i, j] = 1 + num[i - 1, j - 1];

                        if (num[i, j] > maxLen)
                        {
                            maxLen = num[i, j];
                            int thisSubsBegin = i - num[i, j] + 1;
                            if (lastSubsBegin == thisSubsBegin)
                            {
                                sequenceBuilder.Append(str1[i]);
                            }
                            else
                            {
                                lastSubsBegin = thisSubsBegin;
                                sequenceBuilder.Length = 0;
                                sequenceBuilder.Append(str1.Substring(lastSubsBegin, (i + 1) - lastSubsBegin));
                            }
                        }
                    }
                }
            }

            Console.WriteLine(sequenceBuilder.ToString());

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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