2009-12-08 7 views
5

Mam zapytanie LINQ, które zwraca wszystkie nieobecności dla pracownika. Pierwsza część instrukcji linq zawiera podstawową listę szczegółów dotyczących pracowników, ale zwracam także listę chorób związanych z tą nieobecnością.Konwertowanie wyników IQueryable <object> na przecinek z oddzielonymi przecinkami

Chciałbym jakoś przekonwertować tę listę IQueryable na rozdzielaną przecinkami listę chorób.

Obecnie używam (Majorly okrojona):

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

która zwraca listę, ale chciałbym wyniki takie jak: ból głowy, grypa, Kurcze .... itd jakieś pomysły?

Odpowiedz

7

Możesz użyć String.Join, aby utworzyć ciąg rozdzielany przecinkami.

string DetailsOfSickness = 
    String.Join(", ", (
     from t2 in illnesses 
     join ai1 in absenceIllnesses on t2.IllnessID equals ai1.IllnessID 
     select t2.IllnessName).ToArray()); 
+0

Fantastyczne Rubens, dziękuję. – Fermin

+0

Po prostu uwaga, to nie zadziała z LINQ na Entities. – Ecyrb

+0

@Ecyrb, czemu nie? Nie próbowałem, ale jako że włączyłem metodę '.ToArray()', to powinno uzyskać twoje wartości bazy danych, a później użyć ich jako parametru dla 'String.Join' –

3

Coś jak to powinno zrobić:

DetailsOfSickness = String.Join(", ", (
    from t2 in Illnesses 
    join ai1 in AbsenceIllnesses on t2.IllnessID equals ai1.IllnessID 
    select t2.IllnessName).ToArray()); 
  • Należy pamiętać, non-kompilator, nie testowany kod.
+0

Zasadniczo co napisałem kastermester, ale Rubens wszedł tam pierwszy ! Dzięki – Fermin

+0

Po prostu uwaga, to nie zadziała z LINQ na Entities. – Ecyrb

Powiązane problemy