如何影响IEnumerable中元素的属性?

时间:2014-12-15 13:10:59

标签: c# dictionary ienumerable immutability

我有从行为中挑选元素的行为(该值是自定义类型的可枚举)并更改其中的值。但是,当我逐步完成整个过程时,我发现存储的值最终没有生效,因此我猜测我正在操纵副本我想要的。

Dictionary<String, IEnumerable<Custom>> myDictionary = ...;
String key = "key";
myDictionary[key]
  .First(element => element.Origin == "beep")
  .Value = "hazaa";

我希望上面的内容实际上会影响属性 myDictionary ,但是在调试时,原始值保持不变。我的结论是 First 为我提供了一个有效的副本元素(或 Value 那样做)。

如何强制使用 hazaa

自定义类非常简单。

class Custom 
{
  public String Origin { get; set; }
  public String Value {get; set; }
}

字典中元素的实际类型是: {Name =&#34; d__711&#34; FullName =&#34; System.Linq.Enumerable + d__711 [[Configurator.Custom,Configurator,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]]&#34;}

0 个答案:

没有答案