C# 如何在linq操作后保留列表值?
我正在查询azure表。获取数据后,我将执行linq select操作并获取修改后的值。 但我想要两个列表,一个是旧值列表,另一个是新值列表C# 如何在linq操作后保留列表值?,c#,linq,azure,C#,Linq,Azure,我正在查询azure表。获取数据后,我将执行linq select操作并获取修改后的值。 但我想要两个列表,一个是旧值列表,另一个是新值列表 var oldUserEntities = userEntities.ToList(); var newUserEntities = userEntities.Select(i => { i.RowKey = dict[i.RowKey]; return i; }).ToList(); 在这段代码之后,如果我验证OldUserEntities和ne
var oldUserEntities = userEntities.ToList();
var newUserEntities = userEntities.Select(i => { i.RowKey = dict[i.RowKey]; return i; }).ToList();
在这段代码之后,如果我验证OldUserEntities和newUserEntities中的值,它们都具有相同的修改值。
如何创建旧列表和新列表?我不太确定您在这里想做什么,但是
> i => { i.RowKey = dict[i.RowKey]; return i }
正在更改列表中每个对象的RowKey。“returni”然后创建一个列表,其中包含相同的、现在已修改的对象
这一切真正做的是
foreach(i in userEntities)
i.RowKey = dict[i.RowKey]
然后复制列表,这是因为投影中的
i
引用了oldUserEntities
中的原始项,然后i.RowKey
修改了原始数据
请尝试以下操作(假设您的实体名为UserEntity
):
尝试使用oldUserEntities.Select(i=>{i.RowKey=dict[i.RowKey];返回i;}).ToList();使用
.select()
方法选择的具体内容是什么?用户实体的类型和来源是什么?用户实体的类型为“DynamicTableEntity”
var oldUserEntities = userEntities.ToList();
var newUserEntities = userEntities.Select(i => new UserEntity
{
RowKey = dict[i.RowKey],
// rest of desired properties ...
}).ToList();