Todo application implementation I am new to c# and decided to write a classic todo app. The implementation of my application now is like this: there is a Task class that describes the task. The List class acts simultaneously as a storage and has methods for creating, deleting, and displaying tasks. How good is this approach, how can you do better (if possible)? I would like a full code review.
There is Program.cs:
using System;

namespace ToDo
{
    class Program
    {
        static void Main(string[] args)
        {
            List list = new List();
            list.AddTask(&quot;Task №1&quot;);
            list.AddTask(&quot;Task №2&quot;);
            list.AddTask(&quot;Task №3&quot;);
            list.AddTask(&quot;Task №4&quot;);
            list.AddTask(&quot;Task №5&quot;);
            list.WriteTasks();
            list.RemoveTask(2);
            list.WriteTasks();
        }
    }
}


List.cs:
using System;
using System.Collections.Generic;
using System.Text;

namespace ToDo
{
    class List
    {
        private List&lt;Task&gt; tasks = new List&lt;Task&gt;();
        public void AddTask(string body)
        {
            tasks.Add(new Task() { Body = body });
        }
        public void WriteTasks()
        {
            for (int i = 0; i &lt; tasks.Count; i++)
            {
                Console.WriteLine($&quot;[{i+1}]: {tasks[i].Body}&quot;);
            }

            Console.ReadKey();
        }
        public void RemoveTask(int number)
        {
            for (int i = 0; i &lt; tasks.Count; i++)
            {
                if (number == i + 1)
                {
                    tasks.RemoveAt(i);
                }
            }
        }
    }
}

Task.cs:
using System;
using System.Collections.Generic;
using System.Text;

namespace ToDo
{
    class Task
    {
        public string Body { get; set; }
    }
}
As a very basic application this is fine, however, if the program becomes more complicated and you want to add a data base and asynchronous programming you will run into conflicts with some of the class names. For instance the Task class is supplied by the C# library for asynchronous programming.
If I was going to implement a task list application I would have a few more properties for the task class, such as:

Priority
Status (not started, started, in progress, completed).
Due date
Name
Description

These are the minimum I would use, some additional properties might be

Assigned to
Assigned by

if this was a multi-user task list.