C# - 带有2个参数的变量,按字符串

时间:2016-05-13 16:22:11

标签: c# .net

我如何制作变量/类或类似的东西:

Person["James"].age = 22;
Person["James"].name = "James Bond";

Person["John"].age = 18;
Person["John"].name = "John Hock";

string m = Person[James].name;
int l = Person[James].age;

2 个答案:

答案 0 :(得分:3)

你可以创建你的人员课程:

class Person
{
    public string Name { get; private set; }
    public int Age { get; private set; }

    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

然后你可以使用一个字典,它的别名/昵称是关键字:

var people = new Dictionary<string, Person>();

并像这样使用它:

var firstPerson = new Person("James Bond", 22);
var secondPerson = new Person("John Hock", 18);
people.Add("James", firstPerson);
people.Add("John", secondPerson);

// e.g. how to access the element via the nickname.
System.Diagnostics.Debug.Print(people["James"].Name); 

答案 1 :(得分:0)

你想要这个吗?

class Person 
{
    public string Name {get;set;}
    public int Age {get;set;}
}
Person James = new Person();
James.name = "James";

虽然,您可以使用索引器来实现类似于您发布的内容。

The Spyder 2.3 documentation

但是,在我看来,Id只是将Person对象放入List中,因此您可以使用Linq来.Where(person => person.name == "someName");

如果你有多个约翰斯怎么办?

希望这会有所帮助。