Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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# 如何为对象键c使用变量#_C#_Object - Fatal编程技术网

C# 如何为对象键c使用变量#

C# 如何为对象键c使用变量#,c#,object,C#,Object,我试图使用变量OrderBy作为对象键 string OrderBy = "Entity"; output = new object[] { new { OrderBy = "asc" } }; 电流输出: "orderBy":[{"OrderBy":"asc" }] 期望输出: "orderBy":[{"Entity":"asc"

我试图使用变量OrderBy作为对象键

string OrderBy = "Entity";

output = new object[] { new { OrderBy = "asc" } };
电流输出:

"orderBy":[{"OrderBy":"asc" }]
期望输出:

"orderBy":[{"Entity":"asc" }]
这:

没有给出以下信息:

"orderBy":[{"OrderBy":"asc" }]
作为“输出”。您必须以某种方式序列化为JSON。最好的答案将取决于您是如何做到这一点的-您不能在C#中动态设置属性名称(好的,好的,您可以使用反射/发射或动态),类似这样:

dynamic dynamicObject = new ExpandoObject();
(dynamicObject AS IDictionary<String,Object>)[OrderBy] = "asc";
// Then serialize as you are doing now

其他序列化程序还有其他方法,如果你说你使用的是哪一个…

你只需要这样做:

var output=newobject[]{new{Entity=“asc”}


据我所知,您不能用变量替换匿名对象的属性名。

可以使用字典获取动态键。当你们想得到它们的数组时,你们需要把它们放在列表中。代码变得有点凌乱,但这将为您提供所需的reslut

string OrderBy = "Entity";
var dict = new Dictionary<string, string>();
dict[OrderBy] = "asc";
List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
list.Add(dict);
var output = new { orderBy = list };
var str = JsonConvert.SerializeObject(output);
Console.WriteLine(str);
string OrderBy=“Entity”;
var dict=新字典();
dict[OrderBy]=“asc”;
列表=新列表();
列表。添加(dict);
var输出=new{orderBy=list};
var str=JsonConvert.SerializeObject(输出);
控制台写入线(str);

OrderBy
是属性的名称,因此当您序列化它时,它只会显示
OrderBy
。你为什么想要得到期望的输出,你想要达到什么?
JObject jsonObject = new JObject;
jsonObject[Orderby] = "asc"
var output = jsonObject.ToString(); 
string OrderBy = "Entity";
var dict = new Dictionary<string, string>();
dict[OrderBy] = "asc";
List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
list.Add(dict);
var output = new { orderBy = list };
var str = JsonConvert.SerializeObject(output);
Console.WriteLine(str);