首页 > 解决方案 > 访问添加到数组中的对象参数

问题描述

我想知道如何访问 ListArray 1 并打印添加到该 ListArray 的对象的参数之一

主程序:

namespace ConsoleApp1 {


class Program
 {
     static void Main(string[] args)
     {
         UserDetails ud = new UserDetails();
         List<TaskDetails> taskDetails = new List<TaskDetails>();

         Console.Write("Please enter User ID: ");
         string i = Console.ReadLine();

         Console.Write("Please enter username: ");
         string s = Console.ReadLine();

         ud.SetDetails(i, s);

         int cnt = int.Parse(Console.ReadLine());

         for (int x=1; x <= cnt; x++)
         {
             Console.Write("Please enter title for Task: " + x + " ");
             string title = Console.ReadLine();

             TaskDetails td = new TaskDetails();
             td.SetTask(i, title);
             taskDetails.Add(td);
         }
         PrintDetails pd = new PrintDetails();
     }
 }    
 }

任务详情

namespace ConsoleApp1
{
    class TaskDetails
    {
        private string UserID { set; get; }
        private string TaskTitle { set; get; }      
        private List<TaskDetails> TaskList = new List<TaskDetails>();


        public TaskDetails() { }

        public List<TaskDetails> GetTaskList
        {   
            get { return TaskList; }
        }

        public void SetTask(string userID, string taskTitle)
        {
            this.UserID = userID;
            this.TaskTitle = taskTitle;
        }
    }
}

这是我用来访问TaskDetails类中的ArrayList的类,我希望能够通过索引及其参数之一访问数组中的对象

 namespace ConsoleApp1
{
    class PrintDetails
    {
        public void print(int i)
        {
            TaskDetails qw = new TaskDetails();

            List<TaskDetails> MyList1 = qw.GetTaskList;

            Console.WriteLine(qw.GetTaskList);
        }
    }
}

标签: c#

解决方案


所以我认为你面临的问题是,当你创建一个新的 TaskDetails 时,你初始化了一个新版本的 TaskDetails,它一开始是空的。如果您觉得 PrintDetails 需要一个单独的类,则可以使用以下内容:

namespace ConsoleApp1
{
    class PrintDetails
    {
        public void Print(List<TaskDetails> taskDetails, int i)
        {
            var taskDetail = taskDetails[i];

            Console.WriteLine(string.Format(
                "UserID: {0}, TaskTitle: {1}",
                taskDetail.UserID,
                taskDetail.TaskTitle);
        }
    }
}

然后在您的 main 函数中,按如下方式调用它:

PrintDetails pd = new PrintDetails();
pd.Print(taskDetails, i);

推荐阅读