Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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# Linq-如何在不使用新字段的情况下选择多个字段_C#_Linq_Select - Fatal编程技术网

C# Linq-如何在不使用新字段的情况下选择多个字段

C# Linq-如何在不使用新字段的情况下选择多个字段,c#,linq,select,C#,Linq,Select,CoverSelectionControl和UserSelectionControl未传递到其SectionControlTab的相同命名字段,我尝试了两个单独的select语句,但第二个语句看不到UserSelectionControl,我还有另一个字段要复制。如果调用x.LinkedWorkControl。。。同样,这将是一个重复 上面使用复杂定义的类型,我只需要从父对象读取并更新viewModel的子对象 如何更新大量字段而不使用新的???您可以使用,但这基本上隐藏了问题,而且语法更糟糕。

CoverSelectionControl和UserSelectionControl未传递到其SectionControlTab的相同命名字段,我尝试了两个单独的select语句,但第二个语句看不到UserSelectionControl,我还有另一个字段要复制。如果调用x.LinkedWorkControl。。。同样,这将是一个重复

上面使用复杂定义的类型,我只需要从父对象读取并更新viewModel的子对象

如何更新大量字段而不使用新的???

您可以使用,但这基本上隐藏了问题,而且语法更糟糕。C表示一组字段的方式是从C 6.0开始作为对象。创建一个具有新属性的对象。使用Linq无法解决这个问题

model.SectionControlTabs.ForEach(x =>
{
    x.EffectiveDate = x.EffectiveDate?.Split(' ')[0];
    x.LinkedWorkControlEffectiveDate = x.EffectiveDate != null? model.WorkControls
    .Where(y => DateTime.Parse(y.EffectiveDate) <= DateTime.Parse(x.EffectiveDate))
    .OrderByDescending(y => DateTime.Parse(y.EffectiveDate))
    .Select(y =>  new { CoverSelectionControl = y.CoverSelectionControl.ToString(),
        UserSelectionControl = y.UserSelectionControl.ToString()})
    .DefaultIfEmpty()
    .First().ToString(): "";
});