C# 仅从列表中获取最后一个值
我的列表有问题,因为我总是从列表中只得到最后一个值。我不知道我该怎么修复它。。。我尝试过覆盖等,但它的功能不正确,或者我做的不正确C# 仅从列表中获取最后一个值,c#,C#,我的列表有问题,因为我总是从列表中只得到最后一个值。我不知道我该怎么修复它。。。我尝试过覆盖等,但它的功能不正确,或者我做的不正确 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp13 { class Program { static pub
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp13
{
class Program
{
static public List<Person> personList = new List<Person>();
static void Main(string[] args)
{
Person person = new Person();
do
{
Console.WriteLine("Your name: ");
person.Name = Console.ReadLine();
Console.WriteLine("Your Surname: ");
person.Surname = Console.ReadLine();
personList.Add(person);
}
while (personList.Count < 3);
foreach (Person item in personList)
{
Console.WriteLine(item.Name + " " + item.Surname);
}
Console.ReadKey();
}
}
class Person
{
public string Name { get; set; }
public string Surname { get; set; }
}
}
因为您要修改同一实例3次。将person的实例化放在do while循环中,如下所示:
...
do
{
var person = new Person();
Console.WriteLine("Your name: ");
...
因为您要修改同一实例3次。将person的实例化放在do while循环中,如下所示:
...
do
{
var person = new Person();
Console.WriteLine("Your name: ");
...
初始化循环中的person对象
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp13
{
class Program
{
static public List<Person> personList = new List<Person>();
static void Main(string[] args)
{
do
{
Person person = new Person();//initialize here
Console.WriteLine("Your name: ");
person.Name = Console.ReadLine();
Console.WriteLine("Your Surname: ");
person.Surname = Console.ReadLine();
personList.Add(person);
}
while (personList.Count < 3);
foreach (Person item in personList)
{
Console.WriteLine(item.Name + " " + item.Surname);
}
Console.ReadKey();
}
}
class Person
{
public string Name { get; set; }
public string Surname { get; set; }
}
}
初始化循环中的person对象
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp13
{
class Program
{
static public List<Person> personList = new List<Person>();
static void Main(string[] args)
{
do
{
Person person = new Person();//initialize here
Console.WriteLine("Your name: ");
person.Name = Console.ReadLine();
Console.WriteLine("Your Surname: ");
person.Surname = Console.ReadLine();
personList.Add(person);
}
while (personList.Count < 3);
foreach (Person item in personList)
{
Console.WriteLine(item.Name + " " + item.Surname);
}
Console.ReadKey();
}
}
class Person
{
public string Name { get; set; }
public string Surname { get; set; }
}
}
向personList添加person时,它是对person对象的引用。它不是该对象的副本。这意味着,如果需要不同的对象,还需要在每次交互中创建一个新的Person对象
do
{
Person person = new Person();
Console.WriteLine("Your name: ");
person.Name = Console.ReadLine();
Console.WriteLine("Your Surname: ");
person.Surname = Console.ReadLine();
personList.Add(person);
看看引用和值类型。
向personList添加person时,它是对person对象的引用。它不是该对象的副本。这意味着,如果需要不同的对象,还需要在每次交互中创建一个新的Person对象
do
{
Person person = new Person();
Console.WriteLine("Your name: ");
person.Name = Console.ReadLine();
Console.WriteLine("Your Surname: ");
person.Surname = Console.ReadLine();
personList.Add(person);
看看引用和值类型。
感谢朋友对我的问题的顺利解释。这很有帮助。谢谢你的朋友顺利解释我的问题。这很有帮助。