5

ラムダ式で KeyValue ペア コレクションを作成しようとしています。

これが私のクラスで、その下に私のラムダコードがあります。KeyValuePair の作成に失敗しました。

コメディ映画の Id、IsReleased の KeyValuePair のコレクションを取得したい。これらの KeyValuePair を HashSet に入れてすばやく検索します。

 public class Movie{
  public string Name{get;set;}
  public int Id{get;set;}
  public bool IsReleased{get;set;}
  //etc
 }

List<Movie> movieCollection=//getting from BL

var movieIdReleased= new 
HashSet<KeyValuePair<int,bool>>(movieCollection.Where(mov=> mov.Type== "comedy")
                                    .Select(new KeyValuePair<int,bool>(????));
4

3 に答える 3

10

式だけでなく、ラムダをその.Selectメソッドに渡す必要があります。

.Select(movie => new KeyValuePair<int,bool>(movie.Id, movie.IsReleased))

それが役立つことを願っています!

于 2013-01-24T15:00:16.020 に答える
2
 //.Select(new KeyValuePair<int,bool>(????));
 .Select(movie => new KeyValuePair<int,bool>() 
              { Key = movie.Id, Value = movie.IsReleased} );
于 2013-01-24T15:00:34.043 に答える
1
var comedyMovies = movieCollection
    .Where(mc => "comedy".Equals(mc.Type, StringComparison.OrdinalIgnoreCase))
    .Select(mc => new KeyValuePair<int, bool>(mc.Id, mc.IsReleased));
var distinctComedyMovies = new HashSet<KeyValuePair<int,bool>>(comedyMovies);
于 2013-01-24T15:03:10.567 に答える