C# 如何从内存列表中获取不同属性值的数组?
我有一份食物清单 Foo有一个名为Bar的字符串属性 我想使用LINQ为Foo列表中的Foo.Bar获取一个字符串[]的distinct值 我该怎么做?试试这个: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 =
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的字符串属性