Как вы объявляете значения словарной записи как изменяемые?

Google приводит множество примеров добавления и удаления записей в словаре F # (или другой коллекции). Но я не вижу примеров, эквивалентных

myDict["Key"] = MyValue;

Я пытался

myDict.["Key"] <- MyValue

Я также попытался объявить словарь

Dictionary<string, mutable string>

а также несколько вариантов на этом. Тем не менее, я еще не выбрал правильную комбинацию ... если онаis на самом деле возможно в F #.

Редактировать: нарушающий код:

type Config(?fileName : string) =
    let fileName = defaultArg fileName @"C:\path\myConfigs.ini"

    static let settings =
        dict[ "Setting1", "1";
              "Setting2", "2";
              "Debug",    "0";
              "State",    "Disarray";]

    let settingRegex = new Regex(@"\s*(?<key>([^;#=]*[^;#= ]))\s*=\s*(?<value>([^;#]*[^;# ]))")

    do  File.ReadAllLines(fileName)
        |> Seq.map(fun line -> settingRegex.Match(line))
        |> Seq.filter(fun mtch -> mtch.Success)
        |> Seq.iter(fun mtch -> settings.[mtch.Groups.Item("key").Value] <- mtch.Groups.Item("value").Value)

Я получаю ошибку:

System.NotSupportedException: This value may not be mutated
   at [email protected]_Item(K key, V value)
   at <StartupCode$FSI_0036>[email protected](Match mtch)
   at Microsoft.FSharp.Collections.SeqModule.iter[T](FastFunc`2 action, IEnumerable`1 sequence)
   at FSI_0036.Utilities.Config..ctor(Option`1 fileName)
   at <StartupCode$FSI_0041>.$FSI_0041.main@()
stopped due to error

Ответы на вопрос(2)

Ваш ответ на вопрос