Есть небольшой JSON
файл (~400 строк), который имеет подобную структуру:
{
"Items": [
{
"type": "Тип 1",
"Ключ1": "Значение 1",
"Ключ2": "Значение 2"
},
{
"type": "Тип 2",
"Ключ3": "Значение 3",
"Ключ4": "Значение 4"
}
]
}
Файл как видно разбит по разделам, где первое значение всегда type
- данное значение указывает название категории. Также в каждой категории имеется значение (тут я обозначил как ключ) - оно уникально.
Вопрос, как мне совершить поиск по всему файлу имея только Ключ
- получить его Значение
и текущую "категорию", которая находится в type
?
На данный момент я загружаю весь файл построчно и в получившемся массиве ищю строку, которая имеет нужный ключ. Далее я это значение десериализирую и вытаскиваю значение. Такой вариант работает довольно хорошо, но я не могу получить type
, да и сам этот вариант выглядит как "костыль".
Для большей понятности пример:
Имеем к примеру "Ключ3" - делаем поиск - на выходе получаем "Значение 3" и "Тип 2".
С учетом вашей структуры JSON
данных и при нежелании десериализовать в объектный вид, вашу задачу можно решить так, благо фреймворк Json.Net
поддерживает Linq
:
JObject json = JObject.Parse(jsonText);
var result = json["Items"]
.Where(s => s["Ключ3"] != null)
.Select(s => new
{
Value = s["Ключ3"].ToString(),
Type = s["type"]?.ToString()
}).ToList();
Реализован биндинг ListView к Collection в результате в логах вижу что запрос к модели по индексу повторяется по два раза для каждого элемента выводимого...
Привет всем, суть вопроса такая: у меня есть некий объект который добавляется динамически, в котором есть некоторые объекты с событиями MouseEnter,...