【问题标题】:How to convert array of comma delimited values to array with unique values?如何将逗号分隔值数组转换为具有唯一值的数组?
【发布时间】:2014-11-13 09:29:07
【问题描述】:

我有一个逗号分隔的属性数组:

  • 红、绿
  • 绿色
  • 蓝色,黑色
  • 黄色
  • 红、黑

现在我想从数组中提取每种唯一颜色,从而得到以下列表:

  • 红色
  • 绿色
  • 蓝色
  • 黑色
  • 黄色

由于我使用 Entity Framework 以相当复杂的结构从数据库中提取信息,因此如果可能,我想在一个语句中进行转换。

【问题讨论】:

  • 用逗号分割,将所有值合并到一个列表中,然后在上面写一个Distinct(),也许?
  • 我没有尝试过很多事情,因为我只是不知道该怎么做。

标签: c# arrays linq


【解决方案1】:

假设你的属性数组是这样的:

string[] properties = {"Red,Green","Green","Blue,Black","Yellow","Red,Black"};

您应该以逗号分隔并以这种方式选择不同的值:

string[] unique = properties.SelectMany(x=>x.Split(',')).Distinct().ToArray();

【讨论】:

  • 是的,它适用于一个简单的数组。谢谢你。不幸的是,这不适用于实体框架和 SQL Server。我收到一条错误消息,提示 LINQ to Entities does not recognize the method 'System.String[] Split(Char[])'
  • SelectMany之前调用ToArray()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-30
相关资源
最近更新 更多