【问题标题】:Nesting a list within another list on the value it has将一个列表嵌套在另一个列表中的值上
【发布时间】:2015-12-15 14:57:30
【问题描述】:

我正在尝试将一个嵌套列表添加到另一个 id 相同的列表中。示例如下:

我有一个包含其他表的外键的主列表:

列出 PayslipMainlst = new List();

        PayslipMainlst.Add(new PayslipMain(0, "Grade 8 (Professional S)", "43", 45954.00, "Default Cost Centre", "TAX REF: 065/L11438", "There is no historic message stored for this payslip.", 1, 1, 1, 1));
        PayslipMainlst.Add(new PayslipMain(1, "Grade 8 (Professional S)", "43", 50000.00, "Default Cost Centre", "TAX REF: 065/L11608", "There is no historic message stored for this payslip.", 2, 2, 2, 2));

最后四个值是外键,下面的例子展示了它们之间的关系:

列表推导slst = new List();

        /* 28th September 2015 */
        Deductionslst.Add(new Deductions(1, "Tax Paid", "527.00", "3161.80"));
        Deductionslst.Add(new Deductions(1, "Employee NI", "301.72", "1810.32"));

        /*28th October 2015 */
        Deductionslst.Add(new Deductions(2, "Tax Paid", "590.50", "1400.20"));
        Deductionslst.Add(new Deductions(2, "Employee NI", "900.12", "5025.83"));

所以想法是从 PayslipMainlst 列表中查询一条记录,相关表将根据外键添加到嵌套列表中。

有什么办法吗?

【问题讨论】:

  • 您是否希望查找所有扣款,其 ID 与 PaySlip 中的扣款相关?扣除总是与工资单有关吗?如果是这样,请重做该模型。支持组合,以便每个 PaySlip 对象都包含对可能扣除的列表的引用,因为您将开始从 PaySlip 对象中查找详细信息。扣除清单单独存在的原因是什么?
  • 请发PayslipMain
  • 另外,在讨论代码时不要使用数据库术语。您没有外键,您有属性或字段,并且该问题中的任何内容都不是“表”。

标签: c# sql linq list


【解决方案1】:

您可以使用GroupBy 按相同属性对项目进行分组:

例子:

var dict = new Dictionary<int,string>
{
   {1,"1"},
   {2,"1"},
   {3,"2"},
   {4,"2"},
   {5,"3"},
};

var grp = dict.GroupBy(kvp => kvp.Value);

结果是三组:

  1. 值为“1”且键为“1”的组:1,2。
  2. 值为“2”的组,键为:3,4。
  3. 值为“3”且键为 5 的组。

【讨论】:

  • 不确定我是否误解了这个问题,但我认为这更像是在不同列表中查找所有列表项的情况,这些列表项的 ID 由 PaySlip 参考中的属性给出。如果所有项目都存储在同一个集合中,它可能会很方便,但在这种情况下,它似乎是几个未连接的列表......或者我误读了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 2021-07-31
  • 1970-01-01
  • 1970-01-01
  • 2022-07-20
  • 1970-01-01
  • 2021-10-11
相关资源
最近更新 更多