2

に少なくとも 1 人を含む位置を収集Dictionary<Position, List<GameObject>>する新しい辞書を作成したいと考えています。Dictionary<Position, List<Person>>List<GameObject>

私は試した:

Dictionary<Position, List<Person>> persons =
    positions.ToDictionary(
        i => i.Key, 
        i => i.Value.Where(obj => obj is Person))

positions最初の辞書です。

しかし、位置がnullになることがあるため、実際には機能しませんPerson。変換しないため、実際には型ではありません。とにかく、何かアイデアはありますか?

4

1 に答える 1

6
var people = positions.Select(x => new { x.Key, Values = x.Value.OfType<Person>().ToList() })
                      .Where(x => x.Values.Any())
                      .ToDictionary(x => x.Key, x => x.Values)
于 2013-07-11T08:01:04.090 に答える