Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我如何找到所有兄弟姐妹';儿童档案?_C#_Linq - Fatal编程技术网

C# 我如何找到所有兄弟姐妹';儿童档案?

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,

我被卡住了,需要一个linq声明来完成以下任务

情况: 商店有一个收款部门,有一个收款订单

  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; }
}