C# 删除json c数组中的json元素

C# 删除json c数组中的json元素,c#,arrays,C#,Arrays,我有一个来自服务器的json数组。像 ArrayExp = [ { "id" : "number", "name" : "a name", ... }, { "id" : "number", "name" : "a name", ... }, ... ]; 我想从所有数组中删除一个id。我正在尝试: for (int i = 0; i < ArrayExp.Length; i++) { ArrayExp[i].id

我有一个来自服务器的json数组。像

ArrayExp = [
  {
    "id" : "number",
    "name" : "a name",
    ...
  }, 
  {
    "id" : "number",
    "name" : "a name",
    ...
  },
...
];
我想从所有数组中删除一个id。我正在尝试:

for (int i = 0; i < ArrayExp.Length; i++) {
    ArrayExp[i].id // I don't know how to remove it!
}
有人能帮我吗?

ArrayExp元素是的对象

为了删除它的属性,您应该将每个元素映射到一个没有id的新元素中

我用的是来自系统。动态,希望对你有帮助

public static void Main()
{
    var arrayExp = GetArray();
    var newCollection = ArrayExp.ToList().Select(x => RedefineObject(x, "Id"));
}

static object[] GetArray()
{
    var person1 = new { Name = "name", Id = 1 };
    var person2 = new { Name = "name", Id = 2 };
    var person3 = new { Name = "name", Id = 3 };
    return new[] { person1, person2, person3 };
}

static object RedefineObject(object obj, string propertyToRemove)
{
    var properties = obj.GetType().GetProperties().Where(x => x.Name != propertyToRemove);

    var dict = new Dictionary<string, object>();
    var eobj = new ExpandoObject();
    var eoColl = (ICollection<KeyValuePair<string, object>>)eobj;

    properties.ToList().ForEach(x => dict.Add(x.Name, x.GetValue(obj)));

    dynamic dynObj = dict;
    return dynObj;
}

首先不要混合使用JS和C.ArrayExp.RemoveAti;如果你在c@HenkHolterman在c中,您可以像在js中一样执行循环。数组就是一个例子,我可以使用ArrayExp[I].id从c中的对象中选择id。你是什么意思?@AamirNakhwa,但我只想删除所有对象中的id,而不是所有的对象。我的意思是[{id:number,不会在C中编译。发布实际的类。最好写一个。这可以,但我不知道将来元素是否会更改,我需要在不使用元素名称的情况下执行此操作…只有id名称
public static void Main()
{
    var arrayExp = GetArray();
    var newCollection = ArrayExp.ToList().Select(x => RedefineObject(x, "Id"));
}

static object[] GetArray()
{
    var person1 = new { Name = "name", Id = 1 };
    var person2 = new { Name = "name", Id = 2 };
    var person3 = new { Name = "name", Id = 3 };
    return new[] { person1, person2, person3 };
}

static object RedefineObject(object obj, string propertyToRemove)
{
    var properties = obj.GetType().GetProperties().Where(x => x.Name != propertyToRemove);

    var dict = new Dictionary<string, object>();
    var eobj = new ExpandoObject();
    var eoColl = (ICollection<KeyValuePair<string, object>>)eobj;

    properties.ToList().ForEach(x => dict.Add(x.Name, x.GetValue(obj)));

    dynamic dynObj = dict;
    return dynObj;
}