0

私はコントローラーを持っています

namespace WebForms
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

public class ProductsController : ApiController
{

    Product[] products = new Product[] 
    { 
        new Product { Id = 1, Name = "Tomato Soup", Category = "Groceries", Price = 1 }, 
        new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price = 3.75M }, 
        new Product { Id = 3, Name = "Hammer", Category = "Hardware", Price = 16.99M } 
    };

    public IEnumerable<Product> GetAllProducts()
    {
        return products;
    }

    public Product GetProductById(int id)
    {
        var product = products.FirstOrDefault((p) => p.Id == id);
        if (product == null)
        {
            throw new HttpResponseException(HttpStatusCode.NotFound);
        }
        return product;
    }

    public IEnumerable<Product> GetProductsByCategory(string category)
    {
        return products.Where(
            (p) => string.Equals(p.Category, category,
                StringComparison.OrdinalIgnoreCase));
    }
}
}

私はdbから配列Productsを埋めたいです。

私はクラス製品を持っています。私のコードでは、拡張メソッドを使用してリストを埋めます

List<Product> myProducts = new List<Product>();
myProducts.FillData();

配列をリストで埋めるためにそのコードをどこに置く必要がありますか?

4

2 に答える 2

2

配列のサイズを変更することはできないため、いずれにしても新しい配列を作成する必要があります。

したがって、Enumerable.ToArray()を使用してmyProductsも問題ありません。

  products = myProducts.ToArray();
于 2013-07-30T17:29:59.317 に答える