C#中字典输出错误

Sea*_*thy -2 c# dictionary

从字典打印时,为什么要获取namespace.object的输出?

这是我的数据对象.

namespace MoleCalculator
{
    public class elementDO
    {
        public int AtomicNumber { get; set; }
        public string Symbol { get; set; }
        public string Name { get; set; }
        public decimal AtomicWeight { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是包含我字典的类

namespace MoleCalculator
{
public class elementDictionary
{
    public Dictionary<int, elementDO> periodic_Table = new Dictionary<int, elementDO>()
    {
        {1,new elementDO{AtomicNumber = 1,Symbol = "H",Name = "Hydrogen", AtomicWeight = 1.007825M}},
Run Code Online (Sandbox Code Playgroud)

这就是驱动它的原因

var elements = new elementDictionary().periodic_Table;
        Console.WriteLine(elements[1]);
Run Code Online (Sandbox Code Playgroud)

Joa*_*oog 7

您需要覆盖ToString,因为默认实现仅返回命名空间和类名.我已经为您提供了一个关于如何覆盖的示例ToString:

public class elementDO
{
    public int AtomicNumber { get; set; }
    public string Symbol { get; set; }
    public string Name { get; set; }
    public decimal AtomicWeight { get; set; }

    public override string ToString()
    {
        return $"AtomicNumber: {AtomicNumber}. Symbol: {Symbol}. Name: {Name}. AtomicWeight: {AtomicNumber}";
    }
}
Run Code Online (Sandbox Code Playgroud)

您的代码与上面提到的实现一起ToString将给出输出:

AtomicNumber: 1. Symbol: H. Name: Hydrogen. AtomicWeight: 1