Search code examples
c#asp.net.netlinq

Converting or casting List<sting> to List<type> in c#


Looking for direct way to convert/cast all elements of List<string> to a list of particular type which has one string property.

Type Class with one string property:

 public class ClaimNumber
    {
        public string claimNumber { get; set; }
    }

The List I receive from webservice is in List<string> format.

I need to convert/cast List<string> to List<ClaimNumber>

Tried as multiple suggessions given in Shorter syntax for casting from a List<X> to a List<Y>?, but those did not work in above case. Please suggest the right way to achieve this.


Solution

  • Simply run through each element and create a new ClaimNumber object, populating the property.

    With Linq:

    // List<string> source = ...
    List<ClaimNumber> claims = source.Select(s => new ClaimNumber { claimNumber = s }).ToList();
    

    With a foreach

    // List<string> source = ...
    List<ClaimNumber> claims = new();
    foreach (var s in source)
    {
        claims.Add(new ClaimNumber { claimNumber = s });
    }