C#Linq中无空白的Concat
我在LINQ查询中连接不同的地址字段,以获得一个带有merge的地址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
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)));