繁体   English   中英

获取每个对象的列表值的第一项

[英]Get first item of list value of each object

我有一个列表,可以在其中获取很多对象。

List<string[]> registros

在此处输入图片说明

我想要做的是获取每个对象的寄存器 0,例如对象 0

在此处输入图片说明

我只想获得所有对象的“CORP”值等等。 所以我尝试

foreach (var reg in registros[0])
{
    var list = new[]
    {
        new { registros, Name = "Unidad" }
    }.ToList();
    var a = list;
}

但它只返回一个包含所有寄存器的对象。 我究竟做错了什么? 如何创建所有对象的第一个项目的列表?

如何使用LINQ

var s =
    registros
        .Select( r => r?.FirstOrDefault() )
        .Where( r => r != null )
        .ToList();
  • 第 3 行迭代所有List项并选择第一个(如果可用)或null否则。

  • 第 4 行删除了那些null

  • 第 5 行转换为List

这是上述代码的 .NET Fiddle


回应您在下面的评论,这里是如何重命名列表中的项目,而不选择:

foreach ( var list in registros )
{
    if ( list != null && list.Length > 0 )
    {
        list[0] = "Unidad";
    }
}

一个 .NET Fiddle

我建议使用 LINQ 以这种方式做到这一点:

List<string[]> registros = GetRegistros();
var onlyFirstInEach = registros.SelectMany(x => x.Take(1)).ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM