我正在查询天蓝色的桌子。获取数据后,我正在执行linq select操作并获取修改后的值。 但是我想要两个列表,一个是旧值,另一个是新值。
var oldUserEntities = userEntities.ToList();
var newUserEntities = userEntities.Select(i => { i.RowKey = dict[i.RowKey]; return i; }).ToList();
在此代码之后,如果我验证oldUserEntites和newUserEntities中的值,两者都具有相同的修改值。 如何获得旧列表和新列表?
答案 0 :(得分:2)
这是因为您的投影中的i
引用了oldUserEntities
中的原始项目,然后i.RowKey
正在修改原始数据。
请尝试此操作(假设您的实体名为UserEntity
):
var oldUserEntities = userEntities.ToList();
var newUserEntities = userEntities.Select(i => new UserEntity
{
RowKey = dict[i.RowKey],
// rest of desired properties ...
}).ToList();
答案 1 :(得分:1)
我不确定你在这里要做什么,但是这个
> i => { i.RowKey = dict[i.RowKey]; return i }
正在更改列表中每个对象的RowKey。然后,“return i”会生成一个包含相同的,现在已修改过的对象的列表。
这一切真的是
foreach(i in userEntities)
i.RowKey = dict[i.RowKey]
然后复制列表