5

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?

Fermin
  • 34,961
  • 21
  • 83
  • 129

2 Answers2

9

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
  • 57,174
  • 8
  • 131
  • 162
  • @Ecyrb, why not? I didn't tried, but as I included `.ToArray()` method, that should get your database values and, later, use them as parameter for `String.Join` – Rubens Farias Sep 20 '12 at 01:17
3

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
  • 3,058
  • 6
  • 28
  • 44