gpt4 book ai didi

Linq ToDictionary 返回匿名类型

转载 作者:行者123 更新时间:2023-12-01 01:01:16 24 4
gpt4 key购买 nike

我想调用一个返回匿名类型的方法。我需要知道这个匿名类型的类型是什么,因为我在一个方法中返回它。这叫“动态”吗?当我调试时,监 window 口显示类型是 <>f__AnonymousType0。

这是我的代码:

// this doesn't compile
public static Dictionary<int,dynamic> GetRuleNamesDictionary()
{
List<ResponseRoutingRule> rules = GetResponseRoutingRules();
var q = (rules.Select(r => new {r.ResponseRoutingRuleId, r.RuleName}));

var dict1 = q.ToDictionary(d => d.ResponseRoutingRuleId);
var dict = q.ToDictionary(d => d.ResponseRoutingRuleId, d => d.RuleName);
return dict;
}

public static List<ResponseRoutingRule> GetResponseRoutingRules()
{
....
}


public class ResponseRoutingRule
{
public int ResponseRoutingRuleId { get; set; }
....
public string RuleName { get; set; }
...
}

最佳答案

好吧,你实际上似乎返回了一个 Dictionary<int, string> . dict 的类型的值不是匿名类型;这是一个普通的旧string .事实上,似乎不需要匿名类型 dynamic在这里。

你确定这不是你真正想要的吗?

public static Dictionary<int, string> GetRuleNamesDictionary()
{
return GetResponseRoutingRules()
.ToDictionary(r => r.ResponseRoutingRuleId, r => r.RuleName);
}

如果没有,请告诉我们原因。

如果您真的想坚持使用 dynamic ,你当然可以适本地转换:

public static Dictionary<int, dynamic> GetRuleNamesDictionary()
{
return GetResponseRoutingRules()
.ToDictionary(r => r.ResponseRoutingRuleId, r => (dynamic) r.RuleName);
}

关于Linq ToDictionary 返回匿名类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4316169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com