目前我正在使用LinqtoSql开发一个项目,我想为我当前的问题找到一个更简单的解决方案。
实施例:
假设我有一个名为Example
的表,有三行(值为1,2,4)
现在在代码(c#)中我将这些值作为Integer列表(让我们将其命名为lstExisting
)
现在在我的方法中,我得到了另一个整数List(比如lstCurrent
),其中包含整数值(1,2,3)
现在我想比较两个列表并找到整数的差异并更新数据库,因此根据我的示例,应添加值为3的新行,并且应删除值为4的现有行。
PS :(整数值总是唯一的,将是1,2,3,4)
Linq解决方案将更受欢迎,但我不介意其他更简单的解决方案。
由于
答案 0 :(得分:1)
您需要使用Except
找到新项目并删除项目,例如:
var newItems = lstCurrent.Except(lstExisting).ToList();
var toBeDeletedItems = lstExisting.Except(lstCurrent).ToList();
稍后您可以迭代每个列表并相应地添加/删除。
答案 1 :(得分:0)
尝试使用Contains()
。有两个列表,你可以写这样的东西。这样做是迭代你的方法列表中的每个项目,并检查原始文件是否在那里。
var lstExisting = getExistingList();
var lstCurrent = getCurrentList();
foreach(var currentInt in lstCurrent)
{
if(!lstExisting.Contains(currentInt))
{
//insert currentInt
}