13

次のコード設定があるとします。

public class Foo {
 List<string> MyStrings { get; set; }
}

List<Foo> foos = GetListOfFoosFromSomewhere();

LINQ を使用して、すべての Foo インスタンスにわたって MyStrings 内のすべての個別の文字列のリストを取得するにはどうすればよいですか? これは簡単だと思いますが、よくわかりません。

string[] distinctMyStrings = ?
4

1 に答える 1

15
 // If you dont want to use a sub query, I would suggest:

        var result = (
            from f in foos
            from s in f.MyStrings
            select s).Distinct();

        // Which is absoulutely equivalent to:

        var theSameThing = foos.SelectMany(i => i.MyStrings).Distinct();

        // pick the one you think is more readable.

また、Enumerable 拡張メソッドに関する MSDN を読むことを強くお勧めします。実例も豊富でとても参考になります!

于 2009-10-14T20:04:29.143 に答える