Return 仅使用唯一编号查看的列表
Return List to View with only unique numbers
我的应用程序 return 是 table OrderRows 中的一个列表,如下所示:
var allOrders = db.OrderRows.ToList();
这就是我的 class 的 OrderRows 的样子:
public class OrderRows
{
public int ID { get; set; }
[Display(Name = "Produktid")]
public int ProductID { get; set; }
[Display(Name = "Orderid")]
public int OrderID { get; set; }
[Display(Name = "Pris")]
public float Price { get; set; }
public virtual Orders Orders { get; set; }
}
订单class:
public class Orders
{
public int ID { get; set; }
[Display(Name = "Orderdatum")]
public DateTime Orderdate { get; set; }
public int CustomersID { get; set; }
public virtual Customers Customers { get; set; }
public virtual ICollection<OrderRows> OrderRows { get; set; }
}
我正在做一个网店,我把它做得很简单。 table 可以有多个 OrderID,但是当我将列表传递给视图时,我想进行某种排序并且只查看唯一的订单。而不是这样的列表:
1
1
1
2
2
3
3
3
我想要这样:
1
2
3
然后我的想法是使用此号码并能够 select 该命令并更改其内容。是否可以 return 一个只有唯一编号的列表?
您可以使用Distinct()
扩展方法
如果您想要唯一的 orderIds
var allOrders = db.OrderRows.ToList().Select(o=>o.OrderID ).Distinct()
如果您想要具有第一个订单行的唯一 orderId
var allOrders=db.OrderRows.ToList().GroupBy(o=>o.OrderID ).Select(x=>x.First()).ToList()
试试这个:-
var allOrders = db.OrderRows.ToList();
var distinctOrders=allOrders.Distinct();
view(distinctOrders);
如果我没记错的话,你要的是GroupBy
您的查询是这样的-
var allOrders=db.OrderRows.GroupBy(o=>o.Orders).ToList()
渲染它以查看-
@foreach(var order in allOrders) {
<p>@order.Key.ID</p>
foreach(var orderItem in order.ToList()){
<ul>
<li>@orderItem.ProductID, @orderItem.Price</li>
</ul>
}
}
我的应用程序 return 是 table OrderRows 中的一个列表,如下所示:
var allOrders = db.OrderRows.ToList();
这就是我的 class 的 OrderRows 的样子:
public class OrderRows
{
public int ID { get; set; }
[Display(Name = "Produktid")]
public int ProductID { get; set; }
[Display(Name = "Orderid")]
public int OrderID { get; set; }
[Display(Name = "Pris")]
public float Price { get; set; }
public virtual Orders Orders { get; set; }
}
订单class:
public class Orders
{
public int ID { get; set; }
[Display(Name = "Orderdatum")]
public DateTime Orderdate { get; set; }
public int CustomersID { get; set; }
public virtual Customers Customers { get; set; }
public virtual ICollection<OrderRows> OrderRows { get; set; }
}
我正在做一个网店,我把它做得很简单。 table 可以有多个 OrderID,但是当我将列表传递给视图时,我想进行某种排序并且只查看唯一的订单。而不是这样的列表:
1
1
1
2
2
3
3
3
我想要这样:
1
2
3
然后我的想法是使用此号码并能够 select 该命令并更改其内容。是否可以 return 一个只有唯一编号的列表?
您可以使用Distinct()
扩展方法
如果您想要唯一的 orderIds
var allOrders = db.OrderRows.ToList().Select(o=>o.OrderID ).Distinct()
如果您想要具有第一个订单行的唯一 orderId
var allOrders=db.OrderRows.ToList().GroupBy(o=>o.OrderID ).Select(x=>x.First()).ToList()
试试这个:-
var allOrders = db.OrderRows.ToList();
var distinctOrders=allOrders.Distinct();
view(distinctOrders);
如果我没记错的话,你要的是GroupBy
您的查询是这样的-
var allOrders=db.OrderRows.GroupBy(o=>o.Orders).ToList()
渲染它以查看-
@foreach(var order in allOrders) {
<p>@order.Key.ID</p>
foreach(var orderItem in order.ToList()){
<ul>
<li>@orderItem.ProductID, @orderItem.Price</li>
</ul>
}
}