Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#asp.net mvc3中合并两个对象_C#_Asp.net Mvc 3 - Fatal编程技术网

如何在C#asp.net mvc3中合并两个对象

如何在C#asp.net mvc3中合并两个对象,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我有两个这样声明的对象: new {@class = "aClass", bar="bar"} 及 我该如何组合它们才能得到这个结果 {@class = "aClass", bar="bar", foo = "foo"} (以任何顺序) 我的目标是在一个定制的htmlhelper中组合额外的html属性 干杯假设这两个对象是匿名类型 var a = new { @class = "aClass", bar = "bar" }; var b = new { foo = "foo" }; 组合

我有两个这样声明的对象:

new {@class = "aClass", bar="bar"}

我该如何组合它们才能得到这个结果

{@class = "aClass", bar="bar", foo = "foo"}
(以任何顺序)

我的目标是在一个定制的htmlhelper中组合额外的html属性


干杯

假设这两个对象是匿名类型

var a = new { @class = "aClass", bar = "bar" };
var b = new { foo = "foo" };
组合它们的唯一方法是创建一个新对象,该对象包含这两个对象的成员:

var result = new { a.@class, a.bar, b.foo };

假设这两个对象是匿名类型

var a = new { @class = "aClass", bar = "bar" };
var b = new { foo = "foo" };
组合它们的唯一方法是创建一个新对象,该对象包含这两个对象的成员:

var result = new { a.@class, a.bar, b.foo };
objectx=new{@class=“aClass”,bar=“bar”};
对象y=new{foo=“foo”};
var htmlAttributes=新的RouteValueDictionary(x);
foreach(新RouteValueDictionary中的var项(y))
{
htmlAttributes[item.Key]=item.Value;
}
//在这个阶段,HtmLatAttributes代表一个IDictionary
//它将包含3个值,并且可以传递这些值
//以及标准帮助程序的重载版本
//例如:
var link=htmlhelp.ActionLink(“链接文本”、“foo”、null、htmlAttributes);
//将产生:
// 
objectx=new{@class=“aClass”,bar=“bar”};
对象y=new{foo=“foo”};
var htmlAttributes=新的RouteValueDictionary(x);
foreach(新RouteValueDictionary中的var项(y))
{
htmlAttributes[item.Key]=item.Value;
}
//在这个阶段,HtmLatAttributes代表一个IDictionary
//它将包含3个值,并且可以传递这些值
//以及标准帮助程序的重载版本
//例如:
var link=htmlhelp.ActionLink(“链接文本”、“foo”、null、htmlAttributes);
//将产生:
// 

基本上,您需要合并两个匿名对象。 这个问题是关于这个主题的:


基本上,您需要合并两个匿名对象。 这个问题是关于这个主题的:


如果它们包含重复项(意味着两个集合都包含相同的属性),您希望发生什么?我没有真正考虑过,因为我不希望发生这种情况。但这是一个非常好的观点。我想我必须重写它。如果它们包含重复项(意味着两个集合包含相同的属性),您希望发生什么?我没有真正考虑过,因为我不希望发生这种情况。但这是一个非常好的观点。我想我必须重写它。那很好,除非我没有第一个类的定义。所以我不能选择它的属性。那很好,除非我没有第一个类的定义。所以我不能选择它的属性。太棒了!正是我需要的。我可以问一下,如果两个对象都包含相同名称的属性,会发生什么情况?@MrJD,第二个将占优势,并覆盖第一个。但是,如果这不是您在foreach循环中想要的东西,那么您可以在覆盖它之前测试htmlAttributes字典中是否存在一个键。该功能很好。我只是不想抛出任何异常。谢谢这对我来说并不管用——但在其他地方,一个类似问题的答案却起到了关键作用:精彩的答案!正是我需要的。我可以问一下,如果两个对象都包含相同名称的属性,会发生什么情况?@MrJD,第二个将占优势,并覆盖第一个。但是,如果这不是您在foreach循环中想要的东西,那么您可以在覆盖它之前测试htmlAttributes字典中是否存在一个键。该功能很好。我只是不想抛出任何异常。谢谢这对我来说不起作用——但其他地方对类似问题的回答起到了关键作用: