4

私はFooのリストを持っています。

Foo には、Bar という名前の文字列プロパティがあります。

LINQを使用して、List of Foo の Foo.Barの個別の値の string[] を取得したいと思います。

これどうやってするの?

4

4 に答える 4

5

私はラムダに行きます... wayyyより良い

var bars = Foos.Select(f => f.Bar).Distinct().ToArray();

@lassevk が投稿したものと同じように機能します。

また、最後まで配列に変換しないようにすることもお勧めします。

LINQ は舞台裏でいくつかの最適化を行い、クエリは明示的に必要になるまでクエリ形式のままです。そのため、最初に必要なものをすべてクエリに組み込み、可能な最適化がすべて適用されるようにすることをお勧めします。

評価とは、「Count()」や「ToArray()」などのように明示的に評価が必要なものを要求することを意味します。

于 2008-09-02T20:18:09.713 に答える
3

流暢なパターンを使用する場合、これは機能するはずです。

string[] arrayStrings = fooList.Select(a => a.Bar).Distinct().ToArray();
于 2008-09-02T20:16:09.343 に答える
2

これを試して:

var distinctFooBars = (from foo in foos
                       select foo.Bar).Distinct().ToArray();
于 2008-09-02T20:13:41.470 に答える
0

次のようなことができないでしょうか。

var strings = (from a in fooList select a.Bar).Distinct();
string[] array = strings.ToArray();
于 2008-09-02T20:18:43.597 に答える