C# Linq加入克隆

C# Linq加入克隆,c#,linq,C#,Linq,我有一个对象序列,它的类型有很多属性,我想把它和另一个序列连接起来,并从第二个序列中设置一个值。但是因为有很多属性,我不喜欢通过所有这些属性赋值来创建一个新的匿名类型。是否有更好的方法在单个linq查询中实现这一点(已经使用let成功尝试过了) 我需要一个像legalTerms这样的序列,其中的项目有一个从legalEntities更新的属性 希望有一种方法可以克隆le并设置一个属性c=le.c而不使用反射等 基本上,这就是我想在linq声明中可能出现的情况 foreach (v

我有一个对象序列,它的类型有很多属性,我想把它和另一个序列连接起来,并从第二个序列中设置一个值。但是因为有很多属性,我不喜欢通过所有这些属性赋值来创建一个新的匿名类型。是否有更好的方法在单个linq查询中实现这一点(已经使用let成功尝试过了)

我需要一个像legalTerms这样的序列,其中的项目有一个从legalEntities更新的属性 希望有一种方法可以克隆le并设置一个属性c=le.c而不使用反射等

基本上,这就是我想在linq声明中可能出现的情况

        foreach (var lt in legalTerms)
        {
            foreach (var le in legalEntities)
            {
                if (le.Code == lt.LegalEntityCode)
                {
                    lt.LegalEntity = le.Name;
                }
            }
        }
这个怎么样

var map = new Func<LegalTerm, LegalEntity, LegalTerm>((term, entity) =>
{
    term.LegalEntity = entity.Name;
    return term;
});

var query = from lt in legalTerms
            join le in legalEntities 
                on lt.Code equals le.LegalEntityCode
            select map(lt, le);
这个怎么样

var map = new Func<LegalTerm, LegalEntity, LegalTerm>((term, entity) =>
{
    term.LegalEntity = entity.Name;
    return term;
});

var query = from lt in legalTerms
            join le in legalEntities 
                on lt.Code equals le.LegalEntityCode
            select map(lt, le);

“从第二个序列中设置一个值”是什么意思?您希望看到的替代方案是什么,而不是进行所有这些属性赋值?您所说的“克隆
le
并设置一个属性”是什么意思?这意味着第一个序列中的项没有初始化该属性,因此根据连接条件,我使用第二个序列中的项设置值,因此与匿名序列无关。您只想将
le
中的一些值分配给
lt
实例?什么是“设置从第二个序列中获取的值”意思?您希望看到的替代方法是什么,而不是进行所有这些属性分配?什么是“克隆
le
并设置一个属性”?这意味着第一个序列中的项没有初始化该属性,因此根据连接条件,我使用第二个序列中的项设置值,因此与匿名序列无关。您只想将
le
中的一些值分配给
lt
实例?
public class LegalTerm
{
    public string Code { get; set; }
    public string LegalEntity { get; set; }
    public string a { get; set; }
    public string b { get; set; }
    public string c { get; set; }
    public string d { get; set; }
}

public class LegalEntity
{
    public string LegalEntityCode { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}