想实现什么效果。字符串比较不要split,会产生很多的字符串。效率很低。
解决方案 »
- gridview 多条件查询问题
- 求救:关于C#中comboBox的用法!!
- Web用户控件中的自定义事件如何设置才能显示在属性面板上呢?
- 自己写一个控件(大虾帮忙)
- 不得不问一个ZedGraph的问题了
- 急用,看完后马上结帖。C#生成随机带横线字符串
- 如何利用imagesource生成bitmap或者system.drawing.imgae
- 急!!!!各位大哥帮帮忙我的Duwamish7怎么也装不上了!在连接数据库的时候出现:用户sa登陆失败,原因:未与信任sql server连接相关联
- 跪求源代码?急。。。。
- 插件中如何调用主程序的静态函数
- 请问这个进度条方法怎么用 急急急
- 懂C# soccket FTP的进
再将两个List<string>分别进行排序,用sort方法;这样一来,由于两个List都是经过排序的,就能应用算法,进行更快速的进行匹配了。就是不知道sort的成本怎么样,建议楼主试一下
AA,BB,CC,DD,EE,FF和AA,CC,DD,EE,FF
需要跳过一个 BB继续匹配,还是顺序错误都算不匹配?不知道你的规则。
{
List<string> root=new List<string>();
root.Add("10072714211596876194");
root.Add("10072714211596872927");
root.Add("10072714211596879733");
root.Add("abc");
root.Add("defg");
root.Add("asdfasdf"); List<string> source=new List<string>();
source.Add("10072714211596876194");
source.Add("10072714211596872927");
source.Add("10072714211596876234");
source.Add("abc");
source.Add("abdefg");
source.Add("asdfasdf"); List<string> remove;
List<string> add;
FindDistinct(root, source, out remove, out add);
} /// <summary>
/// 归并排序: 查找两个集合中的不同数据
/// </summary>
/// <param name="root">源数据集合</param>
/// <param name="source">新数据集合</param>
/// <param name="remove">需在源数据中移除的集合</param>
/// <param name="add">需在源数据中添加的集合</param>
public void FindDistinct(List<string> root, List<string> source, out List<string> remove, out List<string> add)
{
remove = new List<string>();
add = new List<string>(); root.Sort();
source.Sort();
foreach (string str in root) Console.WriteLine(str);
Console.WriteLine("\r\n");
foreach (string str in source) Console.WriteLine(str);
Console.WriteLine("\r\n"); int i = 0, j = 0;
while (i < root.Count && j < source.Count)
{
switch (root[i].CompareTo(source[j]))
{
case -1:
remove.Add(root[i]); i++;
break;
case 0:
i++; j++;
break;
case 1:
add.Add(source[j]); j++;
break;
}
} if (i < root.Count)
{
for (int m = i; m < root.Count; m++) remove.Add(root[m]);
}
else if (j < source.Count)
{
for (int m = j; m < source.Count; m++) add.Add(source[m]);
} Console.WriteLine("\r\nroot中不同的数据:");
foreach (string str in remove) Console.WriteLine(str); Console.WriteLine("\r\nsource中不同的数据:");
foreach (string str in add) Console.WriteLine(str);
}
......root中不同的数据:
10072714211596879733
defgsource中不同的数据:
10072714211596876234
abdefg
{
var retVal=(from c in a.Split() select c).Intersect(from e in b.Split() select e);
return retVal;
}打完收工!!