Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#对象或数组_C#_Arrays_Object - Fatal编程技术网

C#对象或数组

C#对象或数组,c#,arrays,object,C#,Arrays,Object,我是c#的新手 我需要将数据存储在变量中,但我不确定最好的方法是什么 例如,如果我创建对象: public class Person { public string Name { get; set; } public int Age { get; set; } public Person(string name, int age) { Name = name; Age = age; } //Other propert

我是c#的新手

我需要将数据存储在变量中,但我不确定最好的方法是什么

例如,如果我创建对象:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
    //Other properties, methods, events...
}
例如,在代码中我可以定义

Person person1 = new Person("Leopold", 6);
但是如果我有10000人,我必须定义所有人(person1、person2等)?我认为这不是个好主意。我可以使用数组或类似的东西,以及如何让那个叫利奥波德的人。存储大量数据并对其进行良好访问的最佳方法是什么。(例如,如果我可以使用类似person[somenumber].name或类似的名称,那就好了)

对不起,再一次我是新来的


Thnx

这取决于您需要什么,如果您有固定数量的记录,您可以使用数组,但如果您不确定元素的数量,则将是我的选择。由于您不必考虑
List
的大小,因此在添加或删除元素时,List会自动维护该大小。另一方面,
数组
的大小是固定的,当您需要存储比数组大小更多的元素时,您可能会创建新的数组

List personList=new List();
personList.Add(新人物(“AnyName1”,7));
personList.Add(新人物(“AnyName2”,4));

好吧,这取决于你需要什么,如果你有固定数量的记录,你可以使用数组,但如果你不确定元素的数量,那么我会选择。由于您不必考虑
List
的大小,因此在添加或删除元素时,List会自动维护该大小。另一方面,
数组
的大小是固定的,当您需要存储比数组大小更多的元素时,您可能会创建新的数组

List personList=new List();
personList.Add(新人物(“AnyName1”,7));
personList.Add(新人物(“AnyName2”,4));

您需要一个集合对象。列表是最通用的:

List<Person> people = new List<Person>();

您可以对列表执行更多有用的操作。这里有一个很好的教程:

您需要一个集合对象。列表是最通用的:

List<Person> people = new List<Person>();

您可以对列表执行更多有用的操作。这里有一个很好的教程:

您可能正在寻找一个通用列表,它非常容易使用

List<Person> peopleList = new List<Person>();
peoplelist.Add(new Person("Leopold", 6));
我是林克,所以你应该好好读一读。。
您的另一种选择是使用字典,它将为您提供您提到的索引查找。

您可能正在寻找一个通用列表,它非常易于使用

List<Person> peopleList = new List<Person>();
peoplelist.Add(new Person("Leopold", 6));
我是林克,所以你应该好好读一读。。
您的另一种选择是使用字典,它将为您提供您提到的索引查找。

我对您的问题的建议:

List<Person> persons = new List<Person> 
{ 
    new Person("Leopold", 36),
    new Person("Henry", 46),
    new Person("Joe", 56),
    new Person("Harrison", 66) 
};

var findLeopold = persons.Find(p => p.Name == "Leopold"); // find Leopold in list
var firstPerson = persons[0]; // access by person[someNumber]
List persons=新列表
{ 
新人(“利奥波德”,36岁),
新人(“亨利”,46岁),
新人(“乔”,56岁),
新人(“哈里森”,66岁)
};
var findLeopold=persons.Find(p=>p.Name==“Leopold”);//在列表中查找Leopold
var firstPerson=个人[0];//由个人[某个号码]访问

我对您的问题的建议:

List<Person> persons = new List<Person> 
{ 
    new Person("Leopold", 36),
    new Person("Henry", 46),
    new Person("Joe", 56),
    new Person("Harrison", 66) 
};

var findLeopold = persons.Find(p => p.Name == "Leopold"); // find Leopold in list
var firstPerson = persons[0]; // access by person[someNumber]
List persons=新列表
{ 
新人(“利奥波德”,36岁),
新人(“亨利”,46岁),
新人(“乔”,56岁),
新人(“哈里森”,66岁)
};
var findLeopold=persons.Find(p=>p.Name==“Leopold”);//在列表中查找Leopold
var firstPerson=个人[0];//由个人[某个号码]访问

只有在能够确保永远不会超过某个边界的情况下,才应该使用数组。这通常仅适用于具有内部用途的代码。一组业务对象可以累积到任意大小,因此您希望改用列表。列表没有明确的边界,因为列表中的每个元素都包含对下一个元素的引用,这可以一直持续到列表内存不足为止

也只对具有行为的类使用构造函数,这样的类只需要几个参数即可初始化。仅用于承载数据的类可以包含任意数量的字段来描述某些内容,为每个字段传递参数的速度很慢,而且看起来不可读,因此请使用以下表示法:

new Person() { Name = "Leopold", Age = 21 };
由于所有属性都是可变的,无需验证,因此不需要使用属性而不是字段。因此,您可能希望改用此选项:

public class Person
{
    public string Name;
    public int Age;
}
因为这个类代表一个真实世界的对象,所以我用PascalCase来命名字段,但是记住对任何其他类型的类使用camelCase。这只是一个代码约定的问题

如果要在列表中查找项目,可以使用以下方法:

  • 发现
  • 芬德尔
  • 存在

如果您需要更大的功率,那么您需要。

只有在能够确保永远不会超过某个边界的情况下,才应该使用阵列。这通常仅适用于具有内部用途的代码。一组业务对象可以累积到任意大小,因此您希望改用列表。列表没有明确的边界,因为列表中的每个元素都包含对下一个元素的引用,这可以一直持续到列表内存不足为止

也只对具有行为的类使用构造函数,这样的类只需要几个参数即可初始化。仅用于承载数据的类可以包含任意数量的字段来描述某些内容,为每个字段传递参数的速度很慢,而且看起来不可读,因此请使用以下表示法:

new Person() { Name = "Leopold", Age = 21 };
由于所有属性都是可变的,无需验证,因此不需要使用属性而不是字段。因此,您可能希望改用此选项:

public class Person
{
    public string Name;
    public int Age;
}
因为这个类代表一个真实世界的对象,所以我用PascalCase来命名字段,但是记住对任何其他类型的类使用camelCase。这只是一个代码约定的问题

如果要在列表中查找项目,可以使用以下方法:

  • 发现
  • 芬德尔
  • 存在
如果你需要更多的能量,那么你需要。

你可以创建一个
List persons List()并使用:
persons.Add()