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

时间:2018-02-07 06:19:55

标签: c# asp.net

我有一个列表,我可以获得很多对象。

List<string[]> registros

enter image description here

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

enter image description here

我想只得到&#34; CORP&#34;所有对象的值等等。所以我试试

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

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

2 个答案:

答案 0 :(得分:1)

如何使用LINQ

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

  • 第4行删除了null

  • 第5行转换为List

Here is a .NET Fiddle上述代码。

回复your comment below,以下是如何重命名列表中的项目,而不选择:

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

a .NET Fiddle为它。

答案 1 :(得分:1)

我建议使用LINQ这样做:

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