C# 如何拆分并在列表中获取不同的单词?
我的示例数据column来自CSV文件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(); 它实际上返
|----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();