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第一种情况
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
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第一种情况
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
以上代码就是wuyazhe的
但是提示"System.Array "并不包含"Except"的定义
在前面已经using Systgem.linq;
也试过改成
string[] s3 = Regex.Split(tmp, @"[,,\s]+").Except<string>(Regex.Split(splistr,@"[,,\s]+")).ToArray();[/
还是不行
string s2 = "101,103,105,107,109";
string s3 = String.Join(",", s1.Split(',').Except(s2.Split(',')).ToArray());
Console.WriteLine(s3);
我用的是 .NET 3.5 版本,你试试。
我的也是.net3.5啊
前面已经using System.linq;
你确定?如果是用 VS2008 会不会是 .NET 2.0?你确认一下。