如何调和两个集合

时间:2014-08-11 21:19:14

标签: linq tsql generics collections garbage-collection

我有2个相同类型元素的集合。我们将这些元素称为lettersOfAlphabet。每个字母的ID都是int,Name是字符串。 所以

ID   Letter
0    A
1    B
2    C
3    D

等等。 第一个集合包含字母表,第二个集合包含所选字母 在第一步中,我创建了新的selectedLettersCollection,这很容易。我只是将字母表集合中的元素添加到selectedLettersColletion,并立即从源集合(字母表)中重新添加它。所以我要说我创建了字母表中前5个字母的集合并将其保存到SQL表中。现在字母表集合从F开始并包含Z字母,selectedlettersCollection包含字母A,B,C,D和E.

现在假设我要删除字母C表格selectedLettersCollection并将其移回字母表并从字母表中获取字母G并将其移至selectedLettersColletion。 在LINQ,泛型集合和/或T-SQL中执行此操作的最有效方法是什么?

我当然会创建一个新的选定项目临时集合并将所选元素加载到其中。然后我会执行添加删除操作。但到目前为止,我想要调和这些集合的唯一事情是迭代selectLettersColletion和新的临时集合并相应地移动元素但我想知道是否有一种方法不需要迭代类似TSQL的连接寻找NULL。

1 个答案:

答案 0 :(得分:0)

我将A和B用作表名。 要将Id = 1的行从表A移动到表B,请使用以下命令:

DELETE A 
OUTPUT deleted.Id, deleted.Letter INTO B
WHERE Id = 1;