2015-09-25 57 views
3

我正在查詢天藍色的桌子。獲取數據後,我正在執行linq select操作並獲取修改後的值。 但我想要兩個列表與舊值和其他與新值的列表。如何在linq操作之後保留列表值?

var oldUserEntities = userEntities.ToList(); 
var newUserEntities = userEntities.Select(i => { i.RowKey = dict[i.RowKey]; return i; }).ToList(); 

該代碼後,如果我驗證oldUserEntites和newUserEntities值,兩者都具有相同的修改後的值。 如何擁有舊列表和新列表?

+0

嘗試使用 oldUserEntities。選擇(I => {i.RowKey =字典[i.RowKey];返回I;})。 ToList(); – prashant

+1

你究竟試着用'.Select()'方法選擇什麼? – Fabjan

+1

'userEntities'的類型和來源是什麼? – Enigmativity

回答

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

我真的不知道你是想在這裏做什麼,但是這

> i => { i.RowKey = dict[i.RowKey]; return i } 

在列表中的每個對象上的變化RowKey。然後,「返回我」將創建一個包含相同的,現在已修改的對象的列表。

這一切是真的做的是

foreach(i in userEntities) 
    i.RowKey = dict[i.RowKey] 

,然後上榜

相關問題