Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将逗号分隔值数组转换为具有唯一值的数组?_C#_Arrays_Linq - Fatal编程技术网

C# 如何将逗号分隔值数组转换为具有唯一值的数组?

C# 如何将逗号分隔值数组转换为具有唯一值的数组?,c#,arrays,linq,C#,Arrays,Linq,我有一个逗号分隔属性数组: 红,绿 绿色的 蓝色,黑色 黄色的 红色,黑色 现在,我想从阵列中提取每一种独特的颜色,得到以下列表: 红色的 绿色的 蓝色的 黑色的 黄色的 由于我是从一个结构相当复杂的实体框架数据库中提取信息,如果可能的话,我希望在一条语句中进行转换。假设您的属性数组如下所示: string[] properties = {"Red,Green","Green","Blue,Black","Yellow","Red,Black"}; 应按逗号拆分,并按以下方式选择不同的

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

  • 红,绿
  • 绿色的
  • 蓝色,黑色
  • 黄色的
  • 红色,黑色
现在,我想从阵列中提取每一种独特的颜色,得到以下列表:

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

由于我是从一个结构相当复杂的实体框架数据库中提取信息,如果可能的话,我希望在一条语句中进行转换。

假设您的属性数组如下所示:

string[] properties = {"Red,Green","Green","Blue,Black","Yellow","Red,Black"};
应按逗号拆分,并按以下方式选择不同的值:

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

假设您的属性数组如下所示:

string[] properties = {"Red,Green","Green","Blue,Black","Yellow","Red,Black"};
应按逗号拆分,并按以下方式选择不同的值:

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

在逗号上拆分,将所有值合并到一个列表中,然后对其执行
Distinct()
,也许吧?我没有尝试过很多事情,因为我不知道如何执行。在逗号上拆分,将所有值合并到一个列表中,然后对其执行
Distinct()
,也许吧?我没有尝试过很多东西,因为我只是不知道如何去做。是的,这适用于一个简单的数组。非常感谢。不幸的是,实体框架和SQL Server不能使用这种方法。我得到一个错误,说
LINQ to Entities不识别方法'System.String[]Split(Char[])
只需在
SelectMany
Yes之前调用
ToArray()。非常感谢。不幸的是,实体框架和SQL Server不能使用这种方法。我收到一个错误,说
LINQ to Entities无法识别方法'System.String[]Split(Char[])
只需在
SelectMany之前调用
ToArray()