I'm assuming that you mean a real DataSet. I never use those any more so my syntax may be off a little bit, but the basic idea would be to group the first column by the second column, then out of that select the grouping key (second column) and the concatenated results of the grouping.
using System.Data;
using System.Linq;
var display = ds.AsEnumerable()
.GroupBy( r => r[1], r => r[0] )
.Select( g => new
{
RecreationType = g.Key,
Examples = string.Join( ",", g.Select( e => e.ToString() )
.ToArray() )
} );
If it's really a list of objects that you have, then you can change this up to group by the particular property (instead of column number) and probably omit the ToString()
in the inner select clause (because it's a strongly-typed string property already).