使用linq连接多行中特定列的值

时间:2018-08-02 20:08:50

标签: c# entity-framework linq

我在sql server中有一个具有以下结构的表。

tblFruit:

╔════╦══════════════╦══════╗
║ Id ║  Fruit       ║ Color║
╠════╬══════════════╬══════╣
║  1 ║ Peacock      ║ Red  ║
║  2 ║ Hawk         ║ Green║
║  3 ║ Lion         ║ Red  ║
║  4 ║ Lizard       ║ Red  ║
╚════╩══════════════╩══════╝ 

这是我在LINQ中的查询:

db.Fruits.Where(r => r.Color == "Red")
         .Select(r => r.Fruit)
         .ToList()

我将从表格中获得3行结果。

但是我需要结果是孔雀,狮子,蜥蜴。有没有办法从LINQ中获得此信息,还是应该使用foreach循环并手动进行连接?

1 个答案:

答案 0 :(得分:2)

您可以使用String.join()

var fruits = db.Fruits.Where(r => r.Color == "Red")
                      .Select(r => r.Fruit)
                      .AsEnumerable();

Console.WriteLine(String.join(",", fruits));