views:

234

answers:

2

Hi,

I have a LINQ query that returns all absences for an employee. The first part of the linq statement gets a basic list of the employees details, but I also return an IQueryable list of illnesses related to that absence.

I'd like to somehow convert that IQueryable list to a comma delimited list of Illnesses.

Currently I use (majorly stripped down):

DetailsOfSickness = (
  from t2 in Illnesses
  join ai1 in AbsenceIllnesses on t2.IllnessID equals ai1.IllnessID
  select new { Illness = ", " + t2.IllnessName })

Which returns the list but I'd like the results like: Headache, Flu, Cramps.... etc. Any ideas?

+5  A: 

You can to use String.Join to create your comma delimited string.

string DetailsOfSickness = 
    String.Join(", ", (
      from t2 in illnesses
      join ai1 in absenceIllnesses on t2.IllnessID equals ai1.IllnessID
      select t2.IllnessName).ToArray());
Rubens Farias
Fantastic Rubens, thank you.
Fermin
+2  A: 

Something like this should do it:

DetailsOfSickness = String.Join(", ", (
  from t2 in Illnesses
  join ai1 in AbsenceIllnesses on t2.IllnessID equals ai1.IllnessID
  select t2.IllnessName).ToArray());
  • Please be aware, non-compiler, non-tested code.
kastermester
Basically what I wrote kastermester but Rubens got in there first! Thanks
Fermin