c# - 使用相同的属性名称和类型多次分配匿名类型

标签 c# .net linq initialization anonymous-types

我有一些代码块,需要在 block 外使用相同的对象,我可以使用强类型,例如:

Person p = null;
if(cond1)
{
    p = new Person();
    p.Name = "Name1";
    p.Age = 25;
}
else if (cond2)
{    
    p = Employees.Select(c=>new Person() {Name = c.FirstName + " " +c.LastName }).First();
    p.Age = 23;
}

if(p != null)
{
    Console.Write(p.Name);
}

我需要通过匿名类型而不是人来做到这一点,我不能使用元组,因为属性名称没有命名,而且每次我需要这样的东西时都不能创建小类,这是一个非常简单的案例,但是 LINQ 结果 block 与我的示例类似吗?

最佳答案

这种事情怎么样

        var person = new { Name = "" }; ;

        if (cond1)
        {
            person  = new { Name = "Bob" };
        }
        else
        {
            person  = new { Name = "John" };
        }

        Console.WriteLine(person.Name);

关于c# - 使用相同的属性名称和类型多次分配匿名类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13969564/

相关文章:

.net - CompileAssemblyFromSource 生成的程序集异常没有行号

c# - 使用 LINQ 筛选嵌套集合并返回主对象

c# - 您如何阅读存档的事件日志文件?

c# - 如何通过内联代码对列表中的项目进行分组和拆分?

c# - linq paging - 获取总行数

c# - 最长公共(public)子序列

c# - .ScaleControl 的 WPF 版本?

javascript - 如何使用数据库 C# 中的数据创建 chartjs 图表

c# - 正确命名 C# 的枚举值

c# - && .NET 中的操作