C# 如何拆分并在列表中获取不同的单词?

C# 如何拆分并在列表中获取不同的单词?,c#,linq,C#,Linq,我的示例数据column来自CSV文件 |----Category------------| SHOES SHOES~SHOCKS SHOES~SHOCKS~ULTRA SOCKS 我希望拆分特定列,并在如下列表中获得不同的值 SHOES SHOCKS ULTRA SOCKS 我尝试了以下方法,但没有达到预期效果 var test = from c in products select c.Category.Split('~').Distinct().ToList(); 它实际上返

我的示例数据column来自CSV文件

|----Category------------|

 SHOES
 SHOES~SHOCKS
 SHOES~SHOCKS~ULTRA SOCKS
我希望拆分特定列,并在如下列表中获得不同的值

SHOES
SHOCKS
ULTRA SOCKS
我尝试了以下方法,但没有达到预期效果

var test = from c in products select c.Category.Split('~').Distinct().ToList();
它实际上返回以下内容


有什么想法吗?谢谢。

您可以使用
SelectMany
展开收藏:

products.SelectMany(p => p.Category.Split('~')).Distinct().ToList();

您可以使用
SelectMany
展平收藏:

products.SelectMany(p => p.Category.Split('~')).Distinct().ToList();

在删除重复项之前,我会使用
SelectMany
将列表“展平”:

products.SelectMany(c => c.Category.Split('~'))
        .Distinct()

在删除重复项之前,我会使用
SelectMany
将列表“展平”:

products.SelectMany(c => c.Category.Split('~'))
        .Distinct()

你很接近,你只需要将你的收藏展平,然后通过一个调用拉取每个分组的单个项目:

您可以在下面看到:

// Example input
var input = new string[] { "SHOES","SHOES~SHOCKS","SHOES~SHOCKS~ULTRA SOCKS" };
// Get your results (yields ["SHOES","SHOCKS","ULTRA SOCKS"])
var output = input.SelectMany(p => p.Split('~'))
                  .Distinct()
                  .ToList();

你很接近,你只需要将你的收藏展平,然后通过一个调用拉取每个分组的单个项目:

您可以在下面看到:

// Example input
var input = new string[] { "SHOES","SHOES~SHOCKS","SHOES~SHOCKS~ULTRA SOCKS" };
// Get your results (yields ["SHOES","SHOCKS","ULTRA SOCKS"])
var output = input.SelectMany(p => p.Split('~'))
                  .Distinct()
                  .ToList();

使用
SelectMany()
将此
字符串列表
合并到一个列表中,只需在列表中添加另一个不同的字符串即可


var test=从产品中的c选择c.Category.Split('~').Distinct().ToList().SelectMany(x=>x.Distinct().ToList()

使用
SelectMany()
将此
字符串列表合并到一个列表中,只需在列表中添加另一个不同的字符串即可


var test=从产品中的c选择c.Category.Split('~').Distinct().ToList().SelectMany(x=>x.Distinct().ToList()

以下是使用查询语法的方法

var test = (from p in products 
            from item in p.Category.Split('~')
            select item).Distinct().ToList();

下面是使用查询语法的方法

var test = (from p in products 
            from item in p.Category.Split('~')
            select item).Distinct().ToList();