我是 ArrayList 的新手。据我所知 ArrayLists 每个元素(?)可以包含多个值(请原谅我没有使用正确的术语)。
现在,问题来了,如果我制作一个每个元素只包含一个值的 ArrayList,我可以轻松打印它,但是如下例所示,如果我尝试制作一个每个元素包含多个值的 ArrayList - 我无法打印 ArrayList 中每个元素的值。 如果我尝试使用 foreach 或 for 循环使用 Console.Writeline(list[i]);我得到的只是命名空间。
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication13
{
class Register
{
public string name;
public string surname;
public void RegisterData()
{
Console.Write("Enter your name: "); name = Console.ReadLine();
Console.Write("Enter your surname: "); surname= Console.ReadLine();
}
public void PrintData()
{
Console.WriteLine("Name: " + name + " Surname: " + surname);
}
}
class Program
{
static void Main(string[] args)
{
ArrayList list = new ArrayList();
Register temp = new Register();
temp.RegisterData();
list.Add(temp);
for (int i = 0; i < list.Count; i++)
{
// How can I use the PrintData (without modifying it) method to print the ArrayList values?
}
}
}
}
如何在不使用 PrintData 方法的情况下打印 ArrayList 的值?
提前致谢!
最佳答案
ArrayList
是 .NET 1.1 的东西。您应该改用 List
。它是通用的并且优于 ArrayList
。
所以你定义你的列表
List<Register> list = new List<Register>();
...
list.Add(temp);
并且在 foreach 循环中,您可以访问 Register
类的属性。您也可以使用 ArrayList
来做到这一点。但是你需要类型转换。为什么不使用 List 呢……看起来更干净:
foreach (Register register in list)
{
Console.WriteLine("Name: " + register.name + " Surname: " + register.surname);
// or
// register.PrintData();
}
关于C# 打印包含多个值的 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29548712/