convert comma separated string to list using linq

c#, linq, string

Solution

I don't neccesarily advocate this as a good solution but it does what you asked, which is to 'do it in LINQ'.

It is also probably not the most efficient solution.

string FirstName ="John1, John2, John3";
string MiddleInitial = "K1, K2, K3";
string LastName = "Kenndey1, Kenndey2, Kenndey3";
List<String> fn = new List<String>(FirstName.Split(','));
List<String> mi = new List<String>(MiddleInitial.Split(','));
List<String> ln = new List<String>(LastName.Split(','));

IEnumerable<NameDetails> result = from f in fn
        join i in mi on fn.IndexOf(f) equals mi.IndexOf(i)
        join l in ln on fn.IndexOf(f) equals ln.IndexOf(l)
        select new NameDetails {f, i, l};

I used LINQPad to try this out first (with an anonymous class, not the NameDetails calss).

Problem

I have 3 comma separated strings `FirstName, MiddleInitial, LastName` I have a class `NameDetails`: ``` public class NameDetails { public string FirstName { get; set; } public string MiddleInitial { get; set; } public string LastName { get; set; } } ``` I have the values for strings as: ``` FirstName ="John1, John2, John3" MiddleInitial = "K1, K2, K3" LastName = "Kenndey1, Kenndey2, Kenndey3" ``` I need to fill the NameDetails List with the values from the comma separated strings. Any linq for this? I need this for my asp.net mvc (C#) application.

Original source

Related problems