簡體   English   中英

使用linq將逗號分隔的字符串轉換為列表

[英]convert comma separated string to list using linq

我有3個逗號分隔的字符串FirstName, MiddleInitial, LastName

我有一個NameDetails類:

public class NameDetails
{
    public string FirstName { get; set; }
    public string MiddleInitial { get; set; }
    public string LastName { get; set; }
}

我有字符串的值為:

FirstName ="John1, John2, John3"
MiddleInitial = "K1, K2, K3"
LastName = "Kenndey1, Kenndey2, Kenndey3"

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

任何linq為此? 我需要這個用於我的asp.net mvc(C#)應用程序。

我不一定提倡這是一個很好的解決方案,但它會按照你的要求做,即“在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};

我首先使用LINQPad來嘗試這個(使用匿名類,而不是NameDetails calss)。

您可以使用Linq to CSV庫。

繼我之前的回答,您還可以嘗試:

// some setup
string firstName ="John1, John2, John3";
string middleInitial = "K1, K2, K3";
string lastName = "Kenndey1, Kenndey2, Kenndey3";
var fn = firstName.Split(',');
var mi = middleInitial.Split(',');
var ln = lastName.Split(',');

// the important bit
var s = fn.Select((f, index) => new NameDetails {f, i = mi[index], l = ln[index]});

具有不等條目數的字符串數組將是脆弱的。

由於之前對SO的回答而產生信用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM