C# 我如何找到所有兄弟姐妹';儿童档案?
我被卡住了,需要一个linq声明来完成以下任务 情况: 商店有一个收款部门,有一个收款订单C# 我如何找到所有兄弟姐妹';儿童档案?,c#,linq,C#,Linq,我被卡住了,需要一个linq声明来完成以下任务 情况: 商店有一个收款部门,有一个收款订单 StoreID:1 DepartmentID:D1, OrderID:O1, OrderID:O2, OrderID:O3, DepartmentID:D2, OrderID:O4, OrderID:O5 DepartmentID:D3, OrderID:O6,
StoreID:1
DepartmentID:D1,
OrderID:O1,
OrderID:O2,
OrderID:O3,
DepartmentID:D2,
OrderID:O4,
OrderID:O5
DepartmentID:D3,
OrderID:O6,
OrderID:O7
如果给定部门ID,请查找与其关联的商店。通过该商店获取与该商店相关的所有部门的所有订单
如果我有一个部门的id,在上面的例子中说D2。我要D2商店所有相关部门的所有订单
linq声明会是什么样子 假设您有这样一个类模型:
public class Store
{
public string StoreID{get;set;}
public IList<Department> Departments{get;set;}
}
public class Department
{
public string DepartmentID{get;set;}
public Store Store{get;set;}
public IList<Order> Orders{get;set;}
}
public class Order
{
public string OrderID{get;set;}
public Department Department{get;set;}
}
您也可以这样做。您可以在LinqPad中验证这一点,以进行概念验证
void Main()
{
var storeDepartments = new List<Department>();
storeDepartments.Add(new Department { DepartmentId= 1, OrdersId= new List<int>(){1,2,3}});
storeDepartments.Add(new Department { DepartmentId= 2, OrdersId= new List<int>(){4,5}});
storeDepartments.Add(new Department { DepartmentId= 3, OrdersId= new List<int>(){6,7}});
var stores = new List<Store>();
var myStore = new Store {
StoreId= 1,
Departments= storeDepartments
};
stores.Add(myStore);
var store = stores.Find(s => s.Departments.First(d => d.DepartmentId == 2) != null);
var orders = store.Departments.SelectMany(d => d.OrdersId).ToList();
orders.Dump();
}
// Define other methods and classes here
public class Store {
public int StoreId { get; set; }
public List<Department> Departments { get; set; }
}
public class Department {
public int DepartmentId { get; set; }
public List<int> OrdersId { get; set; }
}
void Main()
{
var storeDepartments=新列表();
Add(新部门{DepartmentId=1,OrdersId=newlist(){1,2,3});
Add(新部门{DepartmentId=2,OrdersId=newlist(){4,5});
Add(新部门{DepartmentId=3,OrdersId=newlist(){6,7});
var stores=新列表();
var myStore=新商店{
StoreId=1,
部门=仓库部门
};
添加(myStore);
var store=stores.Find(s=>s.Departments.First(d=>d.DepartmentId==2)!=null);
var orders=store.Departments.SelectMany(d=>d.OrdersId.ToList();
orders.Dump();
}
//在此处定义其他方法和类
公共类商店{
public int StoreId{get;set;}
公共列表部门{get;set;}
}
公共课系{
public int DepartmentId{get;set;}
公共列表顺序SID{get;set;}
}
同一部门是否与多个门店相关?您可以添加任何扩展的数据集示例。不,每个部门仅与一个商店相关。
void Main()
{
var storeDepartments = new List<Department>();
storeDepartments.Add(new Department { DepartmentId= 1, OrdersId= new List<int>(){1,2,3}});
storeDepartments.Add(new Department { DepartmentId= 2, OrdersId= new List<int>(){4,5}});
storeDepartments.Add(new Department { DepartmentId= 3, OrdersId= new List<int>(){6,7}});
var stores = new List<Store>();
var myStore = new Store {
StoreId= 1,
Departments= storeDepartments
};
stores.Add(myStore);
var store = stores.Find(s => s.Departments.First(d => d.DepartmentId == 2) != null);
var orders = store.Departments.SelectMany(d => d.OrdersId).ToList();
orders.Dump();
}
// Define other methods and classes here
public class Store {
public int StoreId { get; set; }
public List<Department> Departments { get; set; }
}
public class Department {
public int DepartmentId { get; set; }
public List<int> OrdersId { get; set; }
}