【问题标题】:Join two lists in LINQ, writing into other list在 LINQ 中加入两个列表,写入另一个列表
【发布时间】:2014-04-10 07:14:53
【问题描述】:

我创建了一个 linq-select 来加入两个列表。

var materialneu =
        (from material in ma
        join mb5b in mb
        on material.Mat_matwerk equals mb5b.Mb5b_matwerk
        into grouping
        from mb5b2 in grouping.DefaultIfEmpty()
        select new {material, zugang = (mb5b2 == null ? string.Empty : mb5b2.Mb5b_zugang.ToString())}).ToList();

我没有收到任何错误,但如果我通过 materialneuzugang 总是为空... mb5b 绝对不是空的,Mb5b_zugang 也是如此。 此外,我更愿意在我的材料列表中填写一个字段,该字段已经存在(但尚未填写)。 这可能吗? 喜欢

select new {material, material.zugang = mb5b3.Mb5b_zugang} 

? 如果我这样尝试,它总是会给我一个错误。

【问题讨论】:

  • material.Mat_matwerkmb5b.Mb5b_matwerk是什么类型?
  • @Grundy 都是字符串
  • 您确定grouping 不为空吗?你能提供material.Mat_matwerk' and 'mb5b.Mb5b_matwerk的样本值吗?
  • 您在materialmb5b 中似乎没有相同的字符串
  • 操,你说得对。我看不出我是如何在分裂时错过了失败的,我想我是如此专注于 linq,因为我第一次这样做,所以我很确定这是问题所在......谢谢!不过,some1 是否知道是否可以像我上一个示例中那样设置 material.zugang ?

标签: c# linq


【解决方案1】:

我希望它会起作用:添加Group

var materialneu =
    (from material in ma
    Group join mb5b in mb
    on material.Mat_matwerk equals mb5b.Mb5b_matwerk
    into grouping        
    from mb5b2 in grouping.DefaultIfEmpty()
    select new {material, zugang = (mb5b2 == null ? string.Empty : mb5b2.Mb5b_zugang.ToString())}).ToList();

【讨论】:

  • 感谢您的回答,但我遇到了实际 linq 的问题。
  • 我没听懂你。你的意思是你在 linq 之前遇到了问题?
  • 是的,linq 是正确的,但是 mb5b.Mb5b_matwerk 填写错误,所以不可能有相等的项目 :) 我的错
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-24
  • 1970-01-01
  • 2018-02-11
  • 1970-01-01
  • 1970-01-01
  • 2016-03-01
  • 2012-03-12
相关资源
最近更新 更多