列表<逗号分隔的字符串> =>列表<string>?

joh*_*paz 12 c# linq

试图想出一个LINQy方法来做到这一点,但没有什么事情发生在我身上.

我有一个List <>对象,其中包含一个以逗号分隔的alpha代码列表的属性:

lst[0].codes = "AA,BB,DD"
lst[1].codes = "AA,DD,EE"
lst[2].codes = "GG,JJ"
Run Code Online (Sandbox Code Playgroud)

我想要一个这些代码的列表,希望以字符串列表的形式:

result = AA,BB,DD,EE,GG,JJ
Run Code Online (Sandbox Code Playgroud)

谢谢你的任何指示.

Joe*_*zen 21

使用SelectMany让所有分割代码,并使用Distinct不重复的值.尝试这样的事情:

var result = lst.SelectMany(x => x.codes.Split(",")).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)


Yac*_*sad 6

您需要使用Split将每个字符串拆分为多个字符串.然后,您需要使用SelectMany将多个序列连接成一个序列,然后您需要使用Distinct删除重复项.

var result =
    lst
    .SelectMany(x => x.codes.Split(','))
    .Distinct()
    .ToList();
Run Code Online (Sandbox Code Playgroud)