using System;
using System.Collections .Generic ;
struct RosterLine {
public string RosCd;
public string ActCd;
public double Hrs;
}
public class Test
{
public static void Main( )
{
// your code goes here
var dict = new SortedDictionary< DateTime, RosterLine> ( ) ;
dict.Add ( DateTime.Today , new RosterLine( ) ) ;
// Does not work as RosterLine is a value type
dict[ DateTime.Today ] .ActCd = "SO" ;
// Works, but means a lot of copying
var temp = dict[ DateTime.Today ] ;
temp.ActCd = "SO" ;
dict[ DateTime.Today ] = temp;
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCnN0cnVjdCBSb3N0ZXJMaW5lIHsKICAgIHB1YmxpYyBzdHJpbmcgUm9zQ2Q7CiAgICBwdWJsaWMgc3RyaW5nIEFjdENkOwogICAgcHVibGljIGRvdWJsZSBIcnM7Cn0KCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkJdmFyIGRpY3QgPSBuZXcgU29ydGVkRGljdGlvbmFyeTxEYXRlVGltZSwgUm9zdGVyTGluZT4oKTsKCQlkaWN0LkFkZChEYXRlVGltZS5Ub2RheSwgbmV3IFJvc3RlckxpbmUoKSk7CgkJLy8gRG9lcyBub3Qgd29yayBhcyBSb3N0ZXJMaW5lIGlzIGEgdmFsdWUgdHlwZQoJCWRpY3RbRGF0ZVRpbWUuVG9kYXldLkFjdENkID0gIlNPIjsKCQkvLyBXb3JrcywgYnV0IG1lYW5zIGEgbG90IG9mIGNvcHlpbmcKCQl2YXIgdGVtcCA9IGRpY3RbRGF0ZVRpbWUuVG9kYXldOwoJCXRlbXAuQWN0Q2QgPSAiU08iOwoJCWRpY3RbRGF0ZVRpbWUuVG9kYXldID0gdGVtcDsKCX0KfQ==
compilation info
prog.cs(18,21): error CS1612: Cannot modify a value type return value of `System.Collections.Generic.SortedDictionary<System.DateTime,RosterLine>.this[System.DateTime]'. Consider storing the value in a temporary variable
prog.cs(4,8): (Location of the symbol related to previous error)
Compilation failed: 1 error(s), 0 warnings
stdout