日期:2014-05-18  浏览次数:20973 次

字符串对比??
s1是接收过来的字符串:“101,102,105,106”
if (s1!= null)
  {
  DataSet ds_hwbh =sqlhelper.GetDataSet("select hwbh from fhxx where fhqdh='"+fhqdh_edit+"'");//这个是原来fhxx中保存的hwbh
  Ds_hwbh已经转为字符串s2:"101,102,103,104"
103,104是原来已经保存过的编号,状态已经改变了,现在要在删除之前将其状态恢复为01
105,106是新增加的编号不管其状态。
现在如何通过对比s1和s2两字符串,得出103,104这两个编号,将他们的状态update为01

C# code
第一种情况
s1='101,102'
s2='101,103'  
s1是fhxx表保存的,现在删除了102这个id 增加了103 所以要找出102这个id要update
要的结果是102
有时候s1,s2只有一个值
第二种情况
s1='101'
s2='102'  
s1是fhxx表保存的,现在删除了101这个id 增加了102 所以要找出101这个id要update
要的结果是101
第三种
s1='101,102,103,104'
s2='101,102,105,106'  
s1是fhxx表保存的,现在删除了103,104 这个id 增加了105,106所以要找出103,104这2个id要update
要的结果为103,104



------解决方案--------------------
这个问题换个角度描述一下就是:在 s1 中找出不存在于 s2 中的项。
C# code

string s1 = "101,102,103,104,105,106";
string s2 = "101,103,105,107,109";
string s3 = String.Join(",", s1.Split(',').Except(s2.Split(',')).ToArray());
Console.WriteLine(s3);