C#Linq中无空白的Concat

C#Linq中无空白的Concat,c#,asp.net,linq,concat,C#,Asp.net,Linq,Concat,我在LINQ查询中连接不同的地址字段,以获得一个带有merge的地址 public static IList GetOfferList() { using (var objEntity = new dbContext()) { string[] ListCategoryID = CategoryID.Split(','); return (from TBL.OfferMaster select new

我在LINQ查询中连接不同的地址字段,以获得一个带有merge的地址

public static IList GetOfferList()
{
    using (var objEntity = new dbContext())
    {
      string[] ListCategoryID = CategoryID.Split(',');
      return (from TBL.OfferMaster
              select new
              {
                PrimaryID = OM.OfferID,
                Address =  OM.StreetAddress + " ," + OM.City + " ," + OM.State + " ," + OM.Country + " ," + OM.ZipCode,
              }).ToList();
    }
}
目前我得到的字段如下

Address=Fákafen 11 ,Reykjavik , ,Iceland ,108,

我想要

Address=Fákafen 11 ,Reykjavik ,Iceland ,108
表示不需要空白字段。

使用此选项:

var results = (from TBL.OfferMaster
            select new
            {
                PrimaryID = OM.OfferID,
                Address = String.Join(", ", (new string[] { OM.StreetAddress, OM.City, OM.State, OM.Country, OM.ZipCode })
                                                .Where(x => !String.IsNullOrWhiteSpace(x))),
            }).ToList();
我会这么做的

Address = string.Join(" ," (new string[] {OM.StreetAddress, OM.City, OM.State,  OM.Country, OM.ZipCode})
                          .Where(x=> !string.IsNullOrEmpty(x)));

添加对
string.IsNullOrEmpty()
的检查。我假设这是LINQ to SQL?使用IsNullOrEmpty()或检查字符串长度(str.length!=0)。我建议按照Shaunak的建议使用IsNullOrEmpty()。我只是想知道为什么会有
ListCategoryID
split code。我个人建议只构建一个
GetAddressString(OM)
函数,而不是用它来污染这个查询块。可能需要将空格放在逗号之后。这是更常见的用法;)理想情况下,是的,你是正确的。示例中的OP显示在
Address = string.Join(" ," (new string[] {OM.StreetAddress, OM.City, OM.State,  OM.Country, OM.ZipCode})
                          .Where(x=> !string.IsNullOrEmpty(x)));