4

I have an object, with ID and Name properties.

I have a list of the objects, but I want to convert it to a list of strings containing the name of the object. I'm guessing there's some fancy Linq method that will put the name of the object into the list.

List<string> myObjectNames = myObjectList.?

1 Answer 1

19

If you know it is specifically a List<T> and not another collection type then you can use List<T>.ConvertAll:

Converts the elements in the current List<T> to another type, and returns a list containing the converted elements.

Example:

List<string> myObjectNames = myObjectList.ConvertAll(x => x.Name);

If you just know that it is an enumerable type but not necessarily a list then you can use the LINQ extension methods Enumerable<T>.Select and Enumerable<T>.ToList:

List<string> myObjectNames = myObjects.Select(x => x.Name).ToList();
Sign up to request clarification or add additional context in comments.

2 Comments

You probably ought to mention the Cast extension method?
The Cast<T>() extension method does the thing written in the questions title (like converting a list of strings to a list of integers). But it does not fit the example in the question...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.