我有一个列表,我可以获得很多对象。
List<string[]> registros
我想要做的是获取每个对象的寄存器0,例如对象0
我想只得到&#34; CORP&#34;所有对象的值等等。所以我试试
foreach (var reg in registros[0])
{
var list = new[]
{
new { registros, Name = "Unidad" }
}.ToList();
var a = list;
}
但它只返回一个包含所有寄存器的对象。我究竟做错了什么?如何创建所有对象的第一项列表?
答案 0 :(得分:1)
如何使用LINQ:
var s =
registros
.Select( r => r?.FirstOrDefault() )
.Where( r => r != null )
.ToList();
第3行迭代所有List
项并选择第一项(如果可用)或null
否则。
第4行删除了null
。
第5行转换为List
。
回复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();