C# 如何向LINQ查询的结果添加其他对象?

C# 如何向LINQ查询的结果添加其他对象?,c#,linq-to-sql,C#,Linq To Sql,我有以下代码,在从数据库检索结果后,我需要向其中添加一个附加对象。你知道我该怎么做吗 public IEnumerable<ProdPriceDisplay> GetShopProductsPrices() { //ProdPriceDisplay ProdPrice = new ProdPriceDisplay(); var Products = from shop in db.SHOPs select new Prod

我有以下代码,在从数据库检索结果后,我需要向其中添加一个附加对象。你知道我该怎么做吗

   public IEnumerable<ProdPriceDisplay> GetShopProductsPrices()
{

    //ProdPriceDisplay ProdPrice = new ProdPriceDisplay();
    var Products = from shop in db.SHOPs
                   select new ProdPriceDisplay
                   {
                       ProdPrice = shop.S_NAME + " - £" + shop.S_PRICE
                   };

    // *** Want to add something like this:-

    //  Products.Add new ProdPriceDisplay { ProdPrice = "some additional text"; }

    return Products;
}
public IEnumerable GetShopProductsPrices()
{
//ProdPriceDisplay ProdPrice=新的ProdPriceDisplay();
var Products=来自db.SHOPES中的车间
选择新产品价格显示
{
ProdPrice=店铺S_名称+“-”+店铺S_价格
};
//***要添加如下内容:-
//产品。添加新的ProdPriceDisplay{ProdPrice=“一些附加文本”;}
退货产品;
}

这可能是一个解决方案

var productsAsList = Products.ToList();
productsAsList.Add(new ProdPriceDisplay { ProdPrice = "some additional text"; });

return productsAsList; // As your return type is IEnumarable, that won't be a problem;
使用:

public IEnumerable GetShopProductsPrices()
{
var products=来自db.SHOPES中的车间
选择新产品价格显示
{
ProdPrice=店铺S_名称+“-”+店铺S_价格
};
退货产品。可计数()
.Concat(新[]{新产品价格显示
{ProdPrice=“一些附加文本”;});
}
这种过度转换为列表的好处是,结果仍然是流式的,因此您最终不会获取数据的完整副本

编辑:如果您愿意,您可以使用
(newprodpricesplay{…},1)
而不是数组-但是没有太多好处


编辑:我添加了一个调用,基本上是这样说的:“在这一点上,我们不想在数据库中执行其余的操作-使它们成为本地操作。”

是的,这是一个解决方案,但我推荐Jon's,因为他提到了它的好处。
public IEnumerable<ProdPriceDisplay> GetShopProductsPrices()
{
    var products = from shop in db.SHOPs
                   select new ProdPriceDisplay
                   {
                       ProdPrice = shop.S_NAME + " - £" + shop.S_PRICE
                   };

    return products.AsEnumerable()
                   .Concat(new [] { new ProdPriceDisplay 
                           { ProdPrice = "some additional text"; });
}