Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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#_.net_Performance_Linq_Filtering - Fatal编程技术网

C# 如何从内存列表中获取不同属性值的数组?

C# 如何从内存列表中获取不同属性值的数组?,c#,.net,performance,linq,filtering,C#,.net,Performance,Linq,Filtering,我有一份食物清单 Foo有一个名为Bar的字符串属性 我想使用LINQ为Foo列表中的Foo.Bar获取一个字符串[]的distinct值 我该怎么做?试试这个: var distinctFooBars = (from foo in foos select foo.Bar).Distinct().ToArray(); 如果您想使用fluent模式,这应该是可行的: string[] arrayStrings = fooList.Select(a =

我有一份食物清单

Foo有一个名为Bar的字符串属性

我想使用LINQ为Foo列表中的Foo.Bar获取一个字符串[]的distinct

我该怎么做?

试试这个:

var distinctFooBars = (from foo in foos
                       select foo.Bar).Distinct().ToArray();

如果您想使用fluent模式,这应该是可行的:

string[] arrayStrings = fooList.Select(a => a.Bar).Distinct().ToArray();

我会去兰巴斯。。。太好了

var bars = Foos.Select(f => f.Bar).Distinct().ToArray();
与@lassevk发布的内容相同

我还要补充一点,您可能希望在最后一分钟之前不要转换为数组

LINQ在幕后进行了一些优化,查询保持在其查询形式中,直到显式需要为止。因此,您可能希望首先将所需的所有内容构建到查询中,以便应用所有可能的优化


所谓评估,我指的是要求一些明确需要评估的东西,如“Count()”或“ToArray()”等。

你难道不能做如下事情吗:

var strings = (from a in fooList select a.Bar).Distinct();
string[] array = strings.ToArray();

我能在同一个地方再买一套吗?请解释一下你的意思。我有一份食物清单。Foo有一个名为Bar和Coke的字符串属性