gpt4 book ai didi

c# - 在C# Dictionary中给Key和Value命名,提高代码可读性

转载 作者:可可西里 更新时间:2023-11-01 09:02:59 25 4
gpt4 key购买 nike

在C# struct 中,我们可以通过变量名清楚地知道变量的用途。例如,

public struct Book
{
public string title;
public string author;
}

然后,我知道 b.title 是一种字符串类型,它指的是标题。

但是在C#字典中,我们只能指定类型

Dictionary<string,string> d

我怎样才能使代码更具可读性,这样字典的键是字符串类型并且它指的是标题,值是字符串类型并且它指的是>作者?这意味着,其他人在阅读代码时可以很容易地知道 d["J.R.R. Tolkien"] 是字典的错误用法。

编辑@mike z 建议使用变量名 titleToAuthor 来提高可读性。但我真正的问题是代码中有嵌套字典。例如。

Dictionary<string, Dictionary<string, string>>, 
or even 3 levels
Dictionary<string, Dictionary<string , Dictionary< string , string[] >>>.

我们希望在不创建自己的类的情况下保持使用 Dictionary 的便利性,但同时我们需要一些方法来提高可读性

最佳答案

正如@ScottDorman 所建议的,您可以定义一个新类型 TitleAuthorDictionary源自 Dictionary<string, string> ,像这样:

public class TitleAuthorDictionary : Dictionary<string, string>
{
public new void Add(string title, string author)
{
base.Add(title, author);
}

public new string this[string title]
{
get { return base[title]; }
set { base[title] = value; }
}
}

然后您可以使用更具可读性的 Dictionary Collection,如下所示:

TitleAuthorDictionary dictionary = new TitleAuthorDictionary();
dictionary.Add("Title1", "Author1");
dictionary.Add(title: "Title2", author: "Author2");
dictionary["Title2"] = "Author3";

关于c# - 在C# Dictionary中给Key和Value命名,提高代码可读性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30496657/

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