首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# -Interview问题匿名类型

C# -Interview问题匿名类型
EN

Stack Overflow用户
提问于 2010-04-15 03:39:57
回答 4查看 1.8K关注 0票数 1

最近,我被要求用一句话来证明C# 3.0的力量(可能有点棘手)

我写了

代码语言:javascript
复制
new int[] { 1, 2, 3 }.Union(new int[]{10,23,45}).
ToList().ForEach(x => Console.WriteLine(x));

并解释说你可以在一行中使用(i)匿名数组(ii)扩展方法(iii)lambda和闭包。

但是..。

面试官问我how will you convert an anonymous type into known type :(

我解释说

代码语言:javascript
复制
public class Product
{
    public double ItemPrice { private set; get; }
    public string ItemName { private set; get; }
}


var anony=new {ItemName="xxxx",ItemPrice=123.56};

您不能分配product a=anony;

面试官回答说,如果你周围有一个小工作,那么有200%的机会这样做。我当时一无所知。

像往常一样,我在等待你的宝贵回复(可能吗?)。

EN

回答 4

Stack Overflow用户

发布于 2010-04-15 04:18:58

你说得对,你不能做这个任务:

代码语言:javascript
复制
product a=anony;

MSDN:Anonymous Types (C# Programming Guide)

匿名类型不能强制转换为除object以外的任何接口或类型。

票数 1
EN

Stack Overflow用户

发布于 2010-04-15 04:35:15

可能是这样的:

代码语言:javascript
复制
class Program
{
    static T Cast<T>(object target, T example)
    {
        return (T)target;
    }

    static object GetAnon()
    {
        return new { Id = 5 };
    }

    static void Main()
    {
        object anon = GetAnon();
        var p = Cast(anon, new { Id = 0 });
        Console.WriteLine(p.Id);
    }
}

备注:从不编写或依赖这样的代码。

票数 0
EN

Stack Overflow用户

发布于 2010-12-22 13:37:52

可能是尝试所示的示例here..they尝试做类似的事情。

http://www.codeproject.com/KB/linq/AnonymousTypeTransform.aspx

http://www.inflecto.co.uk/Inflecto-Blog/post/2009/11/12/IQueryable-Sorting-Paging-Searching-and-Counting.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2640471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档