使用linq将逗号分隔的字符串转换为列表

Pra*_*sad 7 c# linq string

我有3个逗号分隔的字符串 FirstName, MiddleInitial, LastName

我有一节课NameDetails:

public class NameDetails
{
    public string FirstName { get; set; }
    public string MiddleInitial { get; set; }
    public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有字符串的值为:

FirstName ="John1, John2, John3"
MiddleInitial = "K1, K2, K3"
LastName = "Kenndey1, Kenndey2, Kenndey3"
Run Code Online (Sandbox Code Playgroud)

我需要用逗号分隔的字符串中的值填充NameDetails列表.

任何linq为此?我需要这个用于我的asp.net mvc(C#)应用程序.

roh*_*agg 12

我不一定提倡这是一个很好的解决方案,但它会按照你的要求做,即"在LINQ中做".

它也可能不是最有效的解决方案.

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};
Run Code Online (Sandbox Code Playgroud)

我首先使用LINQPad来尝试这个(使用匿名类,而不是NameDetails calss).

  • 难道这不是说Linq可能不是这项工作的最佳工具吗?似乎用for循环替换Linq会更清楚. (3认同)