2015-04-24 4 views
0

У меня есть список словарей в C#. Как создать массив элементов для определенного ключа из словаря? В объекте-C существует метод valueForKeyPath:.Подобный метод valueForKeyPath: (Obj-C) в C#

Ниже приведен пример списка с словарях:

[ 
    { "id": 1546, "description": “test_1” }, 
    { "id": 2228, "description": “test_2” }, 
    { "id": 2762, "description": "test_3” } 
] 

, и я хотел бы получить:

[ 1546, 2228, 2762 ] 

для ключа id.

+0

Можете ли вы показать пример? Итак, образцы данных, то, что вы пробовали, и ожидаемый результат. –

+0

Да, Корсика, вот мой список со словарями: [ { "Идентификатор": 1546, "Описание": «test_1» }, { "Идентификатор": 2228, "Описание": «test_2 » }, { "идентификатор": 2762, "описание":«test_3” } , и я хотел бы получить: [ \t 1546, \t 2228, ] для ключа «id» –

+0

Вместо этого измените свой вопрос и добавьте код, который хорошо отформатирован. Каков ожидаемый результат? –

ответ

0

Почему вы не запустить экс цикла:

var list = new List<int>(); 
foreach(var dic in DictionaryList){ 
    if(dic.ContainsKey("id")) 
    list.Add(dic["id"]); 
} 

Первого цикл итерация по списку и захватывая каждый словарь, второй для заполнителей являются каждой парой ключей значения, а затем вы можете сравнить его к тому, что вы ищете. Может быть, легче сделать в выражении лямбды, у меня просто не было времени написать его.

Я думаю, что это ближе к тому, о чем вы просили. Если я правильно понимаю, у вас есть список словарей, и вы пытаетесь получить определенное значение из каждого словаря в списке. «ContainsKey» возвращает bool, если его истинно, тогда вы можете получить доступ к этому конкретному ключевому элементу в словаре и добавить значение в список или сделать с ним все, что хотите.

0

Вы можете использовать этот код:

NSMutableArray *arr; 

for(int i=0;i<[givenArr count];i++){ 

NSDictionary *dic=givenArr[i]; 
[arr addObject:[dic valueForKey:@"id"]]; 
} 
NSLog(@"%@",arr); 
Смежные вопросы