Public Class Product
public Name As String
public ID as String
public ShelfList as List(of Shelf)
End Class
Public Class Shelf
public Name As String
public ID as String
public Row as List(of Row)
End Class
Public Class Row
public Name As String
public ID as String
End Class
以上是我的课程。 假设产品可以在不同的货架和不同的行中找到。 另外一行可以容纳多个产品。
数据将与此类似。
List(of Products) -> List(of Shelf) -> List(of Rows)
以下是类似的数据
Boost -> Shelf 1 -> Row 1,Row 2
Shelf 2 -> Row 2
Horlicks ->Shelf 1-> Row 1
Complain ->Shelf 2-> Row 2,Row 3
Colgate -> Shelf 2- Row 3
所以从上面的产品列表中我需要生成摘要。 (行名和每行中的项目数)
Shelf 1 Row 1 - 2 (Boost and horlicks)
Shelf 1 Row 2 - 1 (Boost)
Shelf 2 Row 1 - 1 (Horlicks)
Shelf 2 Row 2 - 2 (Complain and Boost)
Shelf 2 Row 3 - 1 (Colgate)
注意:
货架1第1行是第一个货架第一行的名称。
无需在括号中显示项目名称。现在只是为了理解而展示。
如何使用LINQ实现此目的。 我使用的是VB.NET,目标是CE 3.5。 C#建议也表示赞赏。提前谢谢。
答案 0 :(得分:0)
我认为你必须改变你的数据结构
我会这样做
货架清单 - >行列表 - >产品清单
为什么产品会跟踪行? 它是包含不同产品的行。
每个货架
选择货架编号 - >行号 - >产品名称
答案 1 :(得分:0)
例如,你可以嵌套LINQ查询(对不起,我是一个C级的人);
var a = from t1 in Products
select new
{
Name = t1.Name,
Summary = String.Join(", ",(from t2 in t1.ShelfList
select t2.Name))
};
这样的事情应该做,虽然我忽略了第三层。