gpt4 book ai didi

c# - 如何初始化 ReadOnlyDictionary?

转载 作者:可可西里 更新时间:2023-11-01 08:38:03 26 4
gpt4 key购买 nike

我有一个在类中公开的不变字典。

目前我的代码看起来像

using System.Collections.Generic;
using System.Collections.ObjectModel;

public class FooClass
{
private static ReadOnlyDictionary<string, byte> _validRevisions
= new ReadOnlyDictionary<string, byte>(
new Dictionary<string, byte>() {
{ "1.0", 0x00 },
{ "1.1", 0x01 },
{ "1.2", 0x02 },
{ "1.3", 0x03 }
} );

public static ReadOnlyDictionary<string, byte> ValidRevisions => _validRevisions;

// other FooClass contents...
}

我使用了支持字段 _validRevisions,因为我想不出更好的方法来创建共享常量字典属性。有没有更简洁的方法来管理这个,或者我应该公开该字段?

我的主要问题是是否有更短的方法来初始化 _validRevisions 字段本身?创建内联字典以将其传递到字典(碰巧是只读的)似乎有点……代码味道。是吗?有没有更好的办法?

编辑:我刚刚注意到关于 ROD 的另一件事,没有方法支持检查它是否包含给定值...是否有与它的“只读性”相关的原因?

最佳答案

如果您不介意使用 IReadOnlyDictionary 而不是 ReadOnlyDictionary,您可以使用它,因为 Dictionary 实现了 IReadOnlyDictionary :

private static IReadOnlyDictionary<string, byte> _validRevisions
= new Dictionary<string, byte>
{
{ "1.0", 0x00 },
{ "1.1", 0x01 },
{ "1.2", 0x02 },
{ "1.3", 0x03 }
};

public static IReadOnlyDictionary<string, byte> ValidRevisions => _validRevisions;

关于c# - 如何初始化 ReadOnlyDictionary?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44262640/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com