2

ステートメント内で変数を定義してifから、その変数をそのステートメントのコンテキスト外で使用しようとしています。dbSetif ステートメントの外側で空を初期化して、viewModel表示/入力できるようにするにはどうすればよいですか?

これは私が達成しようとしていることです:

if (order.type.ToString() == "Rush")
{
    var filteredOrders = db.Orders.Where(a => a.rushID == order.rushID).ToList(); 
}
else if (order.type.ToString() == "Standard")
{
    var filteredOrders = db.Orders.Where(a => a.standardID == order.standardID).ToList();
}
else
{
    return HttpNotFound();
}

var viewModel = new OrderDetailsViewModel
{
    PastOrders = filteredOrders,  // filteredOrders doesn't exist here
    Order = order;
};
4

1 に答える 1

1
IEnumerable<Order> filteredOrders; // or IList<Order>, etc., as your prefer

switch (order.type.ToString())
{
    case "Rush":
        filteredOrders = db.Orders.Where(a => a.rushID == order.rushID).ToList();
    case "Standard":
        filteredOrders = db.Orders.Where(a => a.standardID == order.standardID).ToList();
    default::
        return HttpNotFound();
}

var viewModel = new OrderDetailsViewModel
{
    PastOrders = filteredOrders,
    Order = order;
};

またはそれ以上:

Func<Order, bool> filter;

switch (order.type.ToString())
{
    case "Rush":
        filter = a => a.rushID == order.rushID;
    case "Standard":
        filter = a => a.standardID == order.standardID;
    default::
        return HttpNotFound();
}

var viewModel = new OrderDetailsViewModel
{
    PastOrders = db.Orders.Where(filter).ToList(),
    Order = order;
};
于 2013-01-25T01:00:53.393 に答える