使用Linq返回逗号分隔的字符串


76

我的申请中有课程

public class ProductInfo
{
  public int ProductId {get;set;}
  public int ProductType{get;set;}
}

我想编写一个linq查询,该查询可以用逗号分隔的格式返回ProductId的列表,其中ProductType等于某个数字?

我尝试在Linq语句中使用string.join,但似乎没有用。

Answers:


231
var s = string.Join(",", products.Where(p => p.ProductType == someType)
                                 .Select(p => p.ProductId.ToString()));

12
甚至还没有完成1分钟:)
Sriram Sakthivel

8
@SriramSakthivel我知道这里很多人总是试图尽快回答:),相比之下,我只是一个学习者:)
King King

您将如何选择多个列?
jazzBox '17

1
@DougDexter不确定您在此上下文中的含义。OP的问题非常具体,就是要获取一个字符串,其中某些值用逗号分隔。因此,结果Select应为a string,否则ToString()将调用每个项目上的以获得字符串。如果选择多个属性(您理解为列),则仍然需要以某种方式组合这些属性以创建字符串。这就是不清楚的地方。这更多地取决于您希望数据如何成形。
King King

1
@jazzBox以选择多个列,请尝试以下操作:string.Join(“,”,products.Where(p => p.ProductType == someType).Select(p => $“ ID:{p.ProductId.ToString( )}名称:{p.ProductName.ToString()}“)));
Ryan Shripat
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.