string[] oldIds = tempRe.Ids.Split(','); //数据库里面保存的原来的数据 例如 1,2,3,4
string[] newIds = ids.Split(','); //传递过来的新的数据 例如 3,4,5,6
var result = from a in oldIds join b in newIds on a equals b into list from r in list select r; //获取相同的例如 3,4
string[] sameIds = result.ToArray();
//步骤2:用linq把新,旧与相同的对比一下,哪些delete了,哪些add了
string[] deleteIds = oldIds.Except(sameIds).ToArray(); //用来返回oldIds有,sameIds没有的值,也就是计算被删除掉的
string[] addIds = newIds.Except(sameIds).ToArray(); //计算new的有,same没有的值,也就是增加的
//步骤3:该删除的删除,该增加的增加,该update群名字的update群名字
string goDeleteIds = deleteIds.Length != 0 ? string.Join(",", deleteIds) : "";
string goAddIds = addIds.Length != 0 ? string.Join(",", addIds) : "";
linq Except的用法
int[] a = {1, 2, 3, 4};
int[] b = {2, 3, 4, 5};
var reslut = a.Except(b);
result 用来返回a有,b没有的值,计算结果是1。