c# - 将匿名类数组传递给方法并循环 C#

标签 c# class loops anonymous

我是c#的新手,想请教您一些事情,请帮忙。

我使用这样的匿名类创建了一个内部有 3 个人的变量:

var personas = new[] { 
                new {nombre = "Guillermo", apellido = "Pérez", edad = 37}
                , new {nombre = "Juan", apellido = "García", edad = 27}
                , new {nombre = "Maria", apellido = "Rosina", edad = 47}
            };

现在,我尝试对这些项目中的每一个进行迭代,并且我做到了(使用以下代码)

for (int i = 0; i < personas.Length; i++)
{
    var persona = personas[i];
    Console.WriteLine("{0} {1} tiene {2} años.", persona.nombre, persona.apellido, persona.edad);
}

当我想创建一个方法来完成我对最后一段代码所做的事情时,问题就来了,我的想法是创建一个方法并将该对象(在本例中为角色)传递给该方法并在内部执行循环.我所做的是:

 showPersonas(personas);

 static void showPersonas(object[] personsList)        {

        for (int i = 0; i < personsList.Length; i++) {
            var algo = personsList[i];
            Console.WriteLine(personsList[i].nombre); ----> ERROR!!

        }
    }

我希望该方法做的是做我用 for 循环所做的事情,以便能够接收对象、迭代并打印每个项目。

谢谢!引起大家的注意。

最佳答案

我看到两个选项

我认为最好的选择是创建类 Person。使用创建的类型,如果您在编写属性名称时输入错误,编译器将在编译期间显示错误,稍后将尝试重命名它。

public class Person
{
    public string Nombre { get: set; }
    public string Apellido { get: set; }
    public string Edad { get: set; }
}


static void showPersonas(Person[] personsList)        
{
    foreach (var algo in personsList) 
    {
        Console.WriteLine(algo.nombre);
    }
}

另一个选项:dynamic 关键字。
但要小心 - 使用 dynamic 关键字可以将类型检查移至运行时。这将在运行时抛出与您现在在编译时遇到的相同的异常。

static void showPersonas(dynamic[] personsList)        
{
    for (int i = 0; i < personsList.Length; i++) 
    {
        var algo = personsList[i];
        Console.WriteLine(algo.nombre);

    }
}

关于c# - 将匿名类数组传递给方法并循环 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40494655/

相关文章:

c# - 在 GeckoFX 33 中从 C# 调用 Javascript

C#控制数据的对齐方式

android - 如何在 Android Lollipop 版本的 Parcelable 类中添加/保留 Class<?> 对象

javascript - 用原型(prototype)封装 JavaScript

php - 我怎样才能创建一个重复自身直到找到所有信息的函数?

C# Mysql 和多线程?

c# - 在不同的 Controller 操作方法之间传递数据

python - 如何动态构造方法?

JavaScript:当我尝试使用 DOM 时,我的 for 循环似乎不起作用

python - 如何拆分 Python 列表的每个第 N 个元素