Example:

```
        public class ListInheritanceTest
        {
            public void Test1()
            {
                List<string> list = new List<string>();
                MyList myList = list;
            }
        }
        public class MyList : List<string>
        {
        }

```

But `MyList myList = list` has error "Cannot implicitly convert type 'System.Collections.Generic.List' to 'ConsoleTest.MyList'"

How can I fix this? Thanks.

----edit----  

I'm not asking why it gives the error. I want to know what's the workaround to make the assignment work.
The above code is just a simplified example. The purpose is to convert all `List<SomeType>` to MyList in my code without introducing any backward incompatibility.

--- 2nd edit ----

Let me rephrase the question. Say I defined MyList the same way in the above code. **What's the easiest way to assign a `List<string>` to MyList.** 

I know that

```
            foreach(var item in list)  
            mylist.Add(item)  

```

always work. Just looking for something more elegant.