私はFooのリストを持っています。
Foo には、Bar という名前の文字列プロパティがあります。
LINQを使用して、List of Foo の Foo.Barの個別の値の string[] を取得したいと思います。
これどうやってするの?
私はFooのリストを持っています。
Foo には、Bar という名前の文字列プロパティがあります。
LINQを使用して、List of Foo の Foo.Barの個別の値の string[] を取得したいと思います。
これどうやってするの?
私はラムダに行きます... wayyyより良い
var bars = Foos.Select(f => f.Bar).Distinct().ToArray();
@lassevk が投稿したものと同じように機能します。
また、最後まで配列に変換しないようにすることもお勧めします。
LINQ は舞台裏でいくつかの最適化を行い、クエリは明示的に必要になるまでクエリ形式のままです。そのため、最初に必要なものをすべてクエリに組み込み、可能な最適化がすべて適用されるようにすることをお勧めします。
評価とは、「Count()」や「ToArray()」などのように明示的に評価が必要なものを要求することを意味します。
流暢なパターンを使用する場合、これは機能するはずです。
string[] arrayStrings = fooList.Select(a => a.Bar).Distinct().ToArray();
これを試して:
var distinctFooBars = (from foo in foos
select foo.Bar).Distinct().ToArray();
次のようなことができないでしょうか。
var strings = (from a in fooList select a.Bar).Distinct();
string[] array = strings.ToArray();