3 回答

TA貢獻1893條經驗 獲得超10個贊
是的,ToList將創建一個新列表,但因為在這種情況下MyObject是一個引用類型,所以新列表將包含對與原始列表相同的對象的引用。
更新SimpleInt新列表中引用的對象的屬性也會影響原始列表中的等效對象。
(如果MyObject聲明為a struct而不是a,class則新列表將包含原始列表中元素的副本,并且更新新列表中元素的屬性不會影響原始列表中的等效元素。)

TA貢獻1783條經驗 獲得超4個贊
來自Reflector'd來源:
public static List<TSource> ToList<TSource>(this IEnumerable<TSource> source)
{
if (source == null)
{
throw Error.ArgumentNull("source");
}
return new List<TSource>(source);
}
所以是的,您的原始列表將不會更新(即添加或刪除),但引用的對象將會更新。

TA貢獻1816條經驗 獲得超4個贊
ToList 將始終創建一個新列表,該列表不會反映對集合的任何后續更改。
但是,它會反映對象本身的變化(除非它們是可變的結構)。
換句話說,如果使用其他對象替換原始列表中的對象,ToList則仍將包含第一個對象。
但是,如果修改原始列表中的某個對象,ToList則仍將包含相同(已修改)的對象。
- 3 回答
- 0 關注
- 1177 瀏覽
添加回答
舉報