C# 如何在字典中获取对象值<;字符串(对象)>;

C# 如何在字典中获取对象值<;字符串(对象)>;,c#,dictionary,C#,Dictionary,例如,我有一个名为“Tree”的类,它有两个私有变量 public class Tree() { private string name; private int age; public void Tree(string s, int x) { //simply make an object. } } 我从另一个类创建了一个对象,创建了一个字典 Dictionary&

例如,我有一个名为“Tree”的类,它有两个私有变量

    public class Tree()
    {
        private string name;
        private int age;

        public void Tree(string s, int x)
        {
         //simply make an object.
        }


    }
我从另一个类创建了一个对象,创建了一个字典

Dictionary<string, Tree> family = new Dictionary<string, Tree>;

有什么想法吗?

如果您确实知道要访问的项目确实存在于词典中,您可以使用带方括号的直接访问语法,而不是使用
TryGetValue

Tree tree = null;
if( family.TryGetValue( lastName, out tree ) )
{
    var fName = tree.Name;
    var age = tree.Age;
}
string a = family[nickN].name;
int x = family[nickN].age;

要从
类外部访问私有字段
名称
年龄
,请将它们设置为公共字段或创建公共属性以如下方式访问它们:

public class Tree()
{
    private string name;
    private int age;

    public void Tree(string s, int x)
    {
        name = s;
        age = x;
    }

    public string Name{ get{ return name; }}
    public int Age{ get{ return age; }}
}
然后您可以使用:

string a = family[nickN].Name;
int x = family[nickN].Age;

如果您确实知道要访问的项目确实存在于词典中,则可以使用带方括号的直接访问语法,而不是使用
TryGetValue

string a = family[nickN].name;
int x = family[nickN].age;

要从
类外部访问私有字段
名称
年龄
,请将它们设置为公共字段或创建公共属性以如下方式访问它们:

public class Tree()
{
    private string name;
    private int age;

    public void Tree(string s, int x)
    {
        name = s;
        age = x;
    }

    public string Name{ get{ return name; }}
    public int Age{ get{ return age; }}
}
然后您可以使用:

string a = family[nickN].Name;
int x = family[nickN].Age;

Family[lastN].name(如果您将树字段公开)有什么问题吗?这么多语法错误,它不只是返回一个树对象吗?
如果我想获取name和age,我将如何处理它
。你不会——嗯,无论如何,不是没有思考的。您可以获取
实例,但如果您需要能够获取
名称
年龄
值,则属性必须具有适当的访问修饰符。族[lastN]有什么问题。名称(如果您将树字段公开)?这么多语法错误,难道它不只是返回一个树对象吗?
如果我想得到名字和年龄,我该怎么做
。你不会——嗯,无论如何,不是没有思考的。您可以获取
实例,但是如果您需要能够获取
名称
年龄
值,则属性必须具有适当的访问修饰符。为什么要使用fname而不是name?名字;不重要为什么用fname代替name?名字;不重要