这是我的代码示例:
var output = new
{
NetSessionId = string.Empty
};
foreach (var property in output.GetType().GetProperties())
{
property.SetValue(output, "Test", null);
}
Run Code Online (Sandbox Code Playgroud)
它发生异常:"找不到属性集方法".我想知道如何创建一个具有可设置属性的匿名类型.
谢谢.
我正在尝试将字典转换为匿名类型,每个键都有一个属性.
我尝试谷歌它,但我能找到的是如何将匿名对象转换为字典.
我的字典看起来像这样:
var dict = new Dictionary<string, string>
{
{"Id", "1"},
{"Title", "My title"},
{"Description", "Blah blah blah"},
};
Run Code Online (Sandbox Code Playgroud)
我想返回一个看起来像这样的匿名对象.
var o = new
{
Id = "1",
Title = "My title",
Description = "Blah blah blah"
};
Run Code Online (Sandbox Code Playgroud)
所以我希望它循环遍历字典中的每个keyValuePair并在对象中为每个键创建一个属性.
我不知道从哪里开始.
请帮忙.
Implicitly Typed和Anonymous Type之间是否相同或有任何区别.如果它不同那么Implicitly Typed和Anonymous Type之间的主要区别是什么?
随着dynamic
我们非常有动感指针,但不完全是一个动态对象.C#中真正的动态对象是ExpandoObject,但对于大多数人来说,这是一个非常未知的类.expando允许在运行时创建和删除成员,就像哈希(类似于JavaScript).
为什么ExpandoObject的优点是在一个单独的类中实现的,而不仅仅是,作为匿名类型的一个特性实现?
也许这不是一个好的举动,因为缺乏类型安全?或者可能是由于涉及(DLR)开销?
我正在使用LINQ to Objects聚合:
var summary = from esc in objs
where esc.time.Month == month && esc.time.Year == year
group esc by esc.rlf_id into g
select new {
ID = g.Key,
Total = g.Count(),
Preventable = g.Where(a => a.preventable).Count()
};
Run Code Online (Sandbox Code Playgroud)
我的查询按预期工作,但我也想按匿名类型中的任意字段对查询进行排序.我找到了LINQ:按匿名类型排序,但是它在VB.NET中并且需要强烈指定要排序的字段.我可以用这个伪代码概念化我想要的东西:
query = get all esc in obj
aggregate into anonymous type with key ID
ID = g.Key, Total = g.Count, Preventable = g.Count of preventable
orderby inputField[0], (optional thenby inputField[1], ..., thenby inputField[n])
Run Code Online (Sandbox Code Playgroud)
我如何完成:
我最近在Smarterer尝试了C#的技能测试.
我遇到一个问题,说明以下哪一项可用于在C#中创建一个匿名类型(类似的东西).
我选择了"没有这些"(我不记得其他选项,因为基于时间的测试只有10秒).
一旦我给出答案,它说这{...}
是正确的答案.
所以我想这样的事情:
var someVariableName = new {...};
创建匿名类型.
我很惊讶地看到这一点并且有点笨拙,但却找不到类似的东西.
问题:在使用{...}
关键字或运算符实例化时,是否有任何方法可以创建匿名类型而不声明其类型?或问题的正确答案是不是"正确"?
dynamic
如果我没有错,可以使用关键字来完成.