0

私は元々、キーノートとトラック用に 2 つのリストを持っています。次に、それぞれがキーを介して日付でグループ化されました。下記参照:

var Keynotes = _keynoteService.GetKeynotesForContentItem(trackPart.ContentItem).GroupBy(k => string.Format("{0}-{1}", k.Timeslot.DayOfYear, k.Timeslot.Year));
var Tracks = GetTracksForContentItem(trackPart.ContentItem);

foreach (var track in Tracks)
{
     var trackItem = new TrackItem();
     trackItem.Days = new List<TrackDay>();

     var trackDays = track.Sessions.GroupBy(s => string.Format("{0}-{1}", s.Timeslot.DayOfYear, s.Timeslot.Year));

     foreach(var trackDay in trackDays)
     {
          var trackKey = trackDay.Key //THIS IS THE KEY I NEED TO MATCH IN Keynotes
          var trackKeynotes = Keynotes. //I'm Stuck here 

新しいリストは Keynotes と trackDays になりました。これは、実際には Date Keys によるリストのリストです。

trackDays の特定のキーに一致する Keynotes 内のリストを選択するにはどうすればよいですか? 私はすでにキーを持っています。適切なリストを取得するために Keynotes から適切に選択する方法を知る必要があるだけです。

私はLINQの専門家ではないので、助けてください。

Keynotes.Select または Keynotes.SingleOrDefault を考えていました

どんなアドバイスでも大歓迎です。ありがとう!

4

5 に答える 5

1
var trackKeynotes = Keynotes.SingleOrDefault(g => g.Key == trackKey);
于 2013-08-14T16:51:08.170 に答える
1

このようにすればいい

var result = (from x in Keynotes
            join td in TrackDays on x.Key equals td.Key
            select x).ToList();
于 2013-08-14T16:58:42.960 に答える
0

代わりにこれを試してください::

var trackKeynotes = Keynotes.Where(K => K.Key == trackKey);

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

于 2013-08-14T16:51:57.107 に答える
0

Keynotes[trackKey]グループ化されたアイテムにインデックスを付けるために使用します。

于 2013-08-14T16:50:13.713 に答える
0

多分これ

var trackKeynotes = Keynotes.Where(x => x.Key == trackKey);

trackKey は Keynotes のキーだと思います。

于 2013-08-14T16:54:39.327 に答える